You are on page 1of 6

3/1/2016 Using FTPS in ABAP without SAP PI | SCN

    Getting Started Newsletters Store

Hi, Guest Log On Join Us Search the Community

Products Services & Support About SCN Downloads


Activity Communications Actions
Industries Training & Education Partnership Developer Center

Lines of Business University Alliances Events & Webinars Innovation Browse

9 Replies  Latest reply: Jul 25, 2013 5:19 PM by Juan Carlos Rivero  

Share 0 Tweet

Mário Espinheira Mar 1, 2012 11:28 AM

Using FTPS in ABAP without SAP PI
This question is Assumed Answered.

Hello,
 
I have a requirement to create a file in an external server using FTPS and ABAP but we don't use SAP
PI. My question is simple, is it possible?
 
If it's possible, do the following FM work?
 
call function 'HTTP_SCRAMBLE' 
  exporting 
    source      = lv_pwd 
    sourcelen   = lv_pwd_len 
    key         = lv_key 
  importing 
    destination = lv_pwd. 

call function 'FTP_CONNECT' 
  exporting 
    user            = lv_user 
    password        = lv_pwd 
    host            = lv_host 
    rfc_destination = lv_rfc_dest 
  importing 
    handle          = lv_handle 
  exceptions 
    not_connected   = 1 
    others          = 2. 
if sy‐subrc ne 0. 
  message id sy‐msgid type sy‐msgty number sy‐msgno 
    with sy‐msgv1 sy‐msgv2 sy‐msgv3 sy‐msgv4. 
  exit. 
endif. 

call function 'FTP_R3_TO_SERVER' 
  exporting 
    handle         = lv_handle 
    fname          = lv_filename 
    character_mode = 'X' 
  tables 
    text           = lt_text 
  exceptions 
    tcpip_error    = 1 
    command_error  = 2 
    data_error     = 3 
    others         = 4. 
if sy‐subrc ne 0. 
  message id sy‐msgid type sy‐msgty number sy‐msgno 
    with sy‐msgv1 sy‐msgv2 sy‐msgv3 sy‐msgv4. 

https://scn.sap.com/thread/1895005 1/6
3/1/2016 Using FTPS in ABAP without SAP PI | SCN
  exit. 
endif. 

call function 'FTP_DISCONNECT' 
  exporting 
    handle = lv_handle.
 
Regards,
  Mário Espinheira
 

Helpful Answer by Mário Espinheira 

2533 Views
Average User Rating

(0 ratings)

Break Point  Feb 17, 2011 4:13 PM  (in response to Mário Espinheira)

Re: Using FTPS in ABAP without SAP PI

Never heard of FTPS, but if you mean SFTP....I did essentially what you're doing and it worked for me. 
GOOGLE SFTP and FTP commands...
 
I wrote a generic transfer FM to handle either direction; you can figure out what was in the include
forms, I think: 
 
before FM call:
 
data: lv_len      type i, 
        lv_key      type i value 26101957, 
        lv_password type tvarv_val. 

  lv_len = strlen( lv_pass ). 

  call function 'HTTP_SCRAMBLE' 
    exporting 
      source      = lv_pass 
      sourcelen   = lv_len 
      key         = lv_key 
    importing 
      destination = lv_password. 

  if lv_password is not initial. 
    update zcltt_edi_vars 
      set low = lv_password 
          sign = 'I' 
          opti = 'EQ' 
          high = space 
    where name eq 'FTP_PASSWORD' 
      and type eq 'P' 
      and numb eq 1. 
  endif. 
  commit work.
 
FM IMPORT parameters:
 
XFER_FORMAT         TYPE CHAR1          'A' 
FTP_DIRECTION       TYPE CHAR1          'I' 
FTP_HOST            TYPE C                  
FTP_USER            TYPE C                  
FTP_PASSWORD        TYPE C                  
RFC_DESTINATION     TYPE RFCDEST            
FTP_LOCAL_PATH      TYPE LOCALFILE          
FTP_FILE_NAME       TYPE LOCALFILE          
DELETE_AFTER_FTP    TYPE BOOLEAN        'X' 
 
 
* Developers Note:  Basis colleagues create a default folder on the 
* FTP host. We cannot move out of that path, so there is no parameter 
* for the remote system folder. 

https://scn.sap.com/thread/1895005 2/6
3/1/2016 Using FTPS in ABAP without SAP PI | SCN

  data: lv_return    type sysubrc, 
        lv_direction type char1, 
        lv_transfer  type char1, 
        lv_multiple  type boolean, 
        lv_host       type char64. 

  return_code = 0. 
  lv_host = ftp_host. "specified by basis 

  case ftp_direction. 
    when gc_i or gc_o. "In or out 
      lv_direction = ftp_direction. 
    when others. 
      raise invalid_ftp_direction. 
  endcase. 

  if xfer_format eq gc_a. 
    lv_transfer = gc_a. "ASCII 
  else. 
    lv_transfer = gc_b. "BINARY 
  endif. 

  if ftp_file_name is initial. 
    lv_multiple = abap_true. 
  endif. 

  perform ftp_open using ftp_user 
                         ftp_password 
                         lv_host 
                         rfc_destination 
                changing gv_handle 
                         lv_return. 
  if lv_return is not initial. 
    raise unable_to_connect. 
  endif. 

  perform ftp_transfer_type using lv_transfer 
                         changing lv_return. 
  if lv_return is not initial. 
    raise unable_to_set_transfer_type. 
  endif. 

  perform change_directory using ftp_local_path 
                        changing lv_return. 
  if lv_return is not initial. 
    raise unable_to_change_folder. 
  endif. 

* handle transfer if file_name is populated;  after this point, 
* the program should be allowed to continue through close... 
  if lv_multiple eq abap_false. 
    perform ftp_file_single using lv_direction 
                                  ftp_file_name 
                         changing lv_return. 
    if lv_return is not initial. 
      return_code = 4. 
    endif. 

    if delete_after_ftp eq abap_true and lv_return is initial. 
      perform delete_file_single using lv_direction 
                                       ftp_local_path 
                                       ftp_file_name 
                              changing lv_return. 
      if lv_return is not initial. 
        return_code = 6. 
      endif. 
    endif. "delete input is ON 
  endif.   "Single file indicated 

* handle transfers if file_name is not populated 
  if lv_multiple eq abap_true. 

https://scn.sap.com/thread/1895005 3/6
3/1/2016 Using FTPS in ABAP without SAP PI | SCN

    perform ftp_all_files using lv_direction 
                       changing lv_return. 
    if lv_return is not initial. 
      return_code = 8. 
    endif. 

    if delete_after_ftp eq abap_true and lv_return is initial. 
      perform delete_all_files using lv_direction 
                                     ftp_local_path 
                            changing lv_return. 
      if lv_return is not initial. 
        return_code = 12. 
      endif. 
    endif.    "Delete Input is ON 

  endif.      "Multiple files indicated 

  perform ftp_close using rfc_destination 
                 changing lv_return. 
  if lv_return is not initial. 
    raise unable_to_close. 
  endif. 

  if return_code ne 0. 
    raise ftp_errors_occurred. 
  endif. 

endfunction.
 
Edited by: BreakPoint on Feb 17, 2011 4:13 PM

Like (0)

Mário Espinheira  Apr 14, 2011 6:41 PM  (in response to Mário Espinheira)

Helpful Answer Re: Using FTPS in ABAP without SAP PI

Hello,
 
The FM mentioned before didn't work for our specific requisit. We used a SM69 system command to
execute a AS400 script that creates the FTP session (with the FTPS server installed in the application
server) and executes the FTP commands stored in a DDIC table.
 
Hope this helps anyone with the same requirement.
 
Regards!

Like (1)

venkat varadan  Mar 1, 2012 11:57 AM  (in response to Mário Espinheira)

Re: Using FTPS in ABAP without SAP PI

Hello Mário & Dave,
 
I have a similar requirement. I need to send a file using SFTP and we do not have a SAP XI
system. Is it possible to send file only using ABAP. Can you please share some documents which
will help me in achieving the requirement.
 
Thanks in advance.
 
Have a nice day.
 
Regards,
Venkat Varadan
 

Like (0)

https://scn.sap.com/thread/1895005 4/6
3/1/2016 Using FTPS in ABAP without SAP PI | SCN
Sitaraman Duvvuri  Aug 7, 2011 1:03 PM  (in response to Mário Espinheira)

Re: Using FTPS in ABAP without SAP PI

Hi ,
For SFTP you can call Custom FM and inside use floowing command with FM parameters as filename
and return table for any error while connection open . For filename pass SFTP script alogn wiht File
complete path , user id , pws and all those parameters you have set in your shell script .This should
work .
 
CALL FUNCTION 'RFC_REMOTE_PIPE' DESTINATION 'SERVER_EXEC'
                                  EXPORTING
                                    COMMAND = I_FILENAME
                                    READ = 'X'
                                  TABLES
                                    PIPEDATA = TABL
                                  EXCEPTIONS
                                    OTHERS = 1.

Like (0)

Juan Carlos Rivero  Jul 22, 2013 11:44 AM  (in response to Mário Espinheira)

Re: Using FTPS in ABAP without SAP PI

Hola Mario,
 
Tengo el mismo problema que tu a la hora de acceder desde ABAP a un directorio de un servidor
FTPs.
 
¿Al final conseguiste encontrar la solución?
 
Por mas que busco, no encuentre ningún ejemplo que pueda ayudarme....
 
Un cordial saludo

Like (0)

Mário Espinheira  Jul 22, 2013 12:24 PM  (in response to Juan Carlos Rivero)

Re: Using FTPS in ABAP without SAP PI

Hello,
 
I didn't use the FM in question. As I replied on Apr 14, what worked for me was:
 

The FM mentioned before didn't work for our specific requisit. We used a SM69
system command to execute a AS400 script that creates the FTP session (with the
FTPS server installed in the application server) and executes the FTP commands
stored in a DDIC table.

 
Best regards,
Mário Espinheira

Like (0)

Juan Carlos Rivero  Jul 24, 2013 4:25 PM  (in response to Mário Espinheira)

Re: Using FTPS in ABAP without SAP PI

ok understood, I could try to use a similar script that yours, but in unix.
 
Just one more thing: Would you have information on configuring FTPs in SAP (without
PI)?   I do not know where to start :­(
 
Thanks for your answer Mario, best regards

Like (0)

https://scn.sap.com/thread/1895005 5/6
3/1/2016 Using FTPS in ABAP without SAP PI | SCN

Mário Espinheira  Jul 24, 2013 4:30 PM  (in response to Juan Carlos Rivero)

Re: Using FTPS in ABAP without SAP PI

Hello,
 
Unfortunately since we resolved our problem with the AS/400 script I didn't pursue
trying to get FTPs working on R/3 anymore, sorry.
 
Best of luck,
Mário Espinheira

Like (0)

Juan Carlos Rivero  Jul 25, 2013 5:19 PM  (in response to Mário Espinheira)

Re: Using FTPS in ABAP without SAP PI

Ok Mario, thanks anyway.
 
Kind regards

Like (0)

Share 0 Tweet

Site Index Contact Us SAP Help Portal


Follow SCN
Privacy Terms of Use Legal Disclosure Copyright

https://scn.sap.com/thread/1895005 6/6

You might also like