Professional Documents
Culture Documents
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)
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)
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)
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)
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)
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)
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
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)
Re: Using FTPS in ABAP without SAP PI
Ok Mario, thanks anyway.
Kind regards
Like (0)
Share 0 Tweet
https://scn.sap.com/thread/1895005 6/6