Application Development and Automation Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

FTP connection

Former Member
0 Likes
591

Hi all,

I am using the command

" CALL 'AB_RFC_X_SCRAMBLE_STRING'

ID 'SOURCE' FIELD PWD ID 'KEY' FIELD KEY

ID 'SCR' FIELD 'X' ID 'DESTINATION' FIELD PWD

ID 'DSTLEN' FIELD DSTLEN. "

for FTP connection.

When i key in my usrname and password it shows connection failed.

Does my password has to be always encrypted to make login.Can my present password(w/o encryption) keyed in work anyway.

Appreciate your ideas.

Thanks,

Stock.

Hi all,

I am using the command

" CALL 'AB_RFC_X_SCRAMBLE_STRING'

ID 'SOURCE' FIELD PWD ID 'KEY' FIELD KEY

ID 'SCR' FIELD 'X' ID 'DESTINATION' FIELD PWD

ID 'DSTLEN' FIELD DSTLEN. "

for FTP connection.

When i key in my usrname and password it shows connection failed.

Does my password has to be always encrypted to make login.Can my present password(w/o encryption) keyed in work anyway.

Appreciate your ideas.

Thanks,

Stock.

2 REPLIES 2
Read only

Former Member
0 Likes
474

Hi

Scrambling the pwd might not be the reason for the FTP connection to be failing.

There could be some other reason.

Regards,

Raj

  • Find the RFC destination

IF sy-batch IS INITIAL.

l_rfc = 'SAPFTP'.

ELSE.

l_rfc = 'SAPFTPA'.

ENDIF.

  • Encrypt the password, Required for FTP connection

CALL 'AB_RFC_X_SCRAMBLE_STRING'

ID 'SOURCE' FIELD v_ftppwd

ID 'KEY' FIELD l_key

ID 'SCR' FIELD 'X'

ID 'DESTINATION' FIELD v_ftppwd

ID 'DSTLEN' FIELD l_dstlen.

  • Open the FTP connection

CALL FUNCTION 'FTP_CONNECT'

EXPORTING

user = v_ftpusr

password = v_ftppwd

host = v_ftpsrv

rfc_destination = l_rfc

IMPORTING

handle = v_hdl

EXCEPTIONS

not_connected = 01

OTHERS = 02.

IF sy-subrc NE 0.

MESSAGE e200(zhr) WITH 'Failed to open FTP connection!'(020).

ELSE.

  • FTP the file

PERFORM send_file.

  • Close the FTP connection

PERFORM close_ftp_connection.

ENDIF.

ENDFORM. " open_ftp_connection

&----


*& Form send_file

&----


  • FTP the file

----


FORM send_file .

DATA: l_cmd(80) TYPE c,

l_fil(80) TYPE c,

l_loc TYPE i,

l_lng TYPE i.

DATA: BEGIN OF t_result OCCURS 0,

line(100) TYPE c,

END OF t_result.

  • Change remote directory

CLEAR l_cmd.

CONCATENATE 'cd' v_ftploc INTO l_cmd SEPARATED BY space.

CALL FUNCTION 'FTP_COMMAND'

EXPORTING

handle = v_hdl

command = l_cmd

TABLES

data = t_result

EXCEPTIONS

tcpip_error = 01

command_error = 02

data_error = 03

OTHERS = 04.

Read only

Former Member
0 Likes
474

Hi,

See the below code, Bold ones

REPORT ZFTPSAP LINE-SIZE 132.

DATA: BEGIN OF MTAB_DATA OCCURS 0,

LINE(132) TYPE C,

END OF MTAB_DATA.

DATA: <b>MC_PASSWORD(20) TYPE C,</b>

MI_KEY TYPE I VALUE 26101957,

MI_PWD_LEN TYPE I,

MI_HANDLE TYPE I.

START-OF-SELECTION.

*-- Your SAP-UNIX FTP password (case sensitive)

<b>MC_PASSWORD = 'password'.</b>

DESCRIBE FIELD MC_PASSWORD LENGTH MI_PWD_LEN.

*-- FTP_CONNECT requires an encrypted password to work

<b>CALL 'AB_RFC_X_SCRAMBLE_STRING'

ID 'SOURCE' FIELD MC_PASSWORD ID 'KEY' FIELD MI_KEY

ID 'SCR' FIELD 'X' ID 'DESTINATION' FIELD MC_PASSWORD

ID 'DSTLEN' FIELD MI_PWD_LEN.</b>

CALL FUNCTION 'FTP_CONNECT'

EXPORTING

*-- Your SAP-UNIX FTP user name (case sensitive)

USER = 'userid'

<b> PASSWORD = MC_PASSWORD</b>

*-- Your SAP-UNIX server host name (case sensitive)

HOST = 'unix-host'

RFC_DESTINATION = 'SAPFTP'

IMPORTING

HANDLE = MI_HANDLE

EXCEPTIONS

NOT_CONNECTED = 1

OTHERS = 2.

CHECK SY-SUBRC = 0.

CALL FUNCTION 'FTP_COMMAND'

EXPORTING

HANDLE = MI_HANDLE

COMMAND = 'dir'

TABLES

DATA = MTAB_DATA

EXCEPTIONS

TCPIP_ERROR = 1

COMMAND_ERROR = 2

DATA_ERROR = 3

OTHERS = 4.

IF SY-SUBRC = 0.

LOOP AT MTAB_DATA.

WRITE: / MTAB_DATA.

ENDLOOP.

ELSE.

  • do some error checking.

WRITE: / 'Error in FTP Command'.

ENDIF.

CALL FUNCTION 'FTP_DISCONNECT'

EXPORTING

HANDLE = MI_HANDLE

EXCEPTIONS

OTHERS = 1.

When you call 'AB_RFC_X_SCRAMBLE_STRING' the password will be encrypted and will be passed to the Function Module..

Regards

Sudheer