1.文本方式传输
*&———————————————————————*
*& Form frm_get_ftp
*&———————————————————————*
* csv文件上传至ftp
*———————————————————————-*
FORM frm_get_ftp.
DATA:l_v_pas TYPE char30,
l_v_len TYPE i,
l_v_key TYPE i,
l_v_host TYPE char64,
l_v_user TYPE char50.
DATA: l_v_dest LIKE rfcdes-rfcdest VALUE ‘SAPFTP’,
l_v_hdl TYPE i.
DATA:l_v_flag.
CALL FUNCTION ‘SAP_CONVERT_TO_CSV_FORMAT’
EXPORTING
i_field_seperator = ‘,’
TABLES
i_tab_sap_data = g_itb_output
CHANGING
i_tab_converted_data = g_itb_output2
EXCEPTIONS
conversion_failed = 1
OTHERS = 2.
IF sy-subrc 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno WITH sy-msgv1
sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
CLEAR : l_v_user, l_v_pas.
l_v_user = ‘test’.
l_v_pas = ‘test’.
l_v_len = STRLEN( l_v_pas ).
l_v_key = 26101957.
l_v_host = ‘192.168.0.118′.
CALL FUNCTION ‘HTTP_SCRAMBLE’
EXPORTING
SOURCE = l_v_pas
sourcelen = l_v_len
key = l_v_key
IMPORTING
destination = l_v_pas.
CALL FUNCTION ‘FTP_CONNECT’
EXPORTING
user = l_v_user
* USER = ’s001scn1′
password = l_v_pas
* ACCOUNT =
host = l_v_host
rfc_destination = l_v_dest
* GATEWAY_USER =
* GATEWAY_PASSWORD =
* GATEWAY_HOST =
IMPORTING
handle = l_v_hdl
EXCEPTIONS
not_connected = 1
OTHERS = 2
.
IF sy-subrc 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno WITH sy-msgv1
sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
IF l_v_flag IS INITIAL.
CALL FUNCTION ‘FTP_R3_TO_SERVER’
EXPORTING
handle = l_v_hdl
fname = g_v_filename
* BLOB_LENGTH = L_V_LENG
character_mode = ‘X’
TABLES
* BLOB = G_ITB_OUTPUT2
text = g_itb_output2
EXCEPTIONS
tcpip_error = 1
command_error = 2
data_error = 3
OTHERS = 4
.
IF sy-subrc 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno WITH sy-msgv1
sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
ENDIF.
IF l_v_flag IS INITIAL.
CALL FUNCTION ‘FTP_DISCONNECT’
EXPORTING
handle = l_v_hdl
EXCEPTIONS
OTHERS = 1.
IF sy-subrc 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno WITH sy-msgv1
sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
ENDIF.
ENDFORM. “frm_get_ftp
2.二进制模式传输
*&———————————————————————*
*& Form frm_get_ftp
*&———————————————————————*
* csv文件上传至ftp
*———————————————————————-*
FORM frm_get_ftp.
DATA:l_v_pas TYPE char30,
l_v_len TYPE i,
l_v_key TYPE i,
l_v_user TYPE char50.
DATA: l_v_dest LIKE rfcdes-rfcdest VALUE ‘SAPFTP’,
l_v_hdl TYPE i.
DATA:l_v_flag.
CALL FUNCTION ‘SAP_CONVERT_TO_CSV_FORMAT’
EXPORTING
i_field_seperator = ‘,’
TABLES
i_tab_sap_data = g_itb_output
CHANGING
i_tab_converted_data = g_itb_output2
EXCEPTIONS
conversion_failed = 1
OTHERS = 2.
IF sy-subrc 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno WITH sy-msgv1
sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
DATA: e_string TYPE string.
CALL FUNCTION ‘CONVERT_TABLE_TO_STRING’
EXPORTING
i_tabline_length = ‘4096′
IMPORTING
e_string = e_string
TABLES
it_table = g_itb_output2.
DATA:l_con TYPE REF TO cl_rpe_convert.
CREATE OBJECT l_con.
DATA: e_xstring TYPE xstring.
CALL METHOD l_con->string_to_xstring
EXPORTING
input = e_string
IMPORTING
output = e_xstring.
TYPES: BEGIN OF blob,
line(132) TYPE x,
END OF blob.
DATA: bindata TYPE TABLE OF blob WITH HEADER LINE.
DATA: l_v_leng TYPE i.
CALL FUNCTION ‘SCMS_XSTRING_TO_BINARY’
EXPORTING
buffer = e_xstring
* APPEND_TO_TABLE = ‘ ‘
IMPORTING
output_length = l_v_leng
TABLES
binary_tab = bindata[]
.
CLEAR : l_v_user, l_v_pas.
l_v_user = ‘test’.
l_v_pas = ‘test’.
l_v_len = STRLEN( l_v_pas ).
l_v_key = 26101957.
l_v_host = ‘192.168.0.118′.
CALL FUNCTION ‘HTTP_SCRAMBLE’
EXPORTING
SOURCE = l_v_pas
sourcelen = l_v_len
key = l_v_key
IMPORTING
destination = l_v_pas.
CALL FUNCTION ‘FTP_CONNECT’
EXPORTING
user = l_v_user
password = l_v_pas
* ACCOUNT =
host = l_v_host
rfc_destination = l_v_dest
* GATEWAY_USER =
* GATEWAY_PASSWORD =
* GATEWAY_HOST =
IMPORTING
handle = l_v_hdl
EXCEPTIONS
not_connected = 1
OTHERS = 2
.
IF sy-subrc 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno WITH sy-msgv1
sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
IF l_v_flag IS INITIAL.
CALL FUNCTION ‘FTP_R3_TO_SERVER’
EXPORTING
handle = l_v_hdl
fname = g_v_filename
blob_length = l_v_leng
* CHARACTER_MODE = ‘X’
TABLES
blob = bindata
* TEXT = G_ITB_OUTPUT2
EXCEPTIONS
tcpip_error = 1
command_error = 2
data_error = 3
OTHERS = 4
.
IF sy-subrc 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
ENDIF.
IF l_v_flag IS INITIAL.
CALL FUNCTION ‘FTP_DISCONNECT’
EXPORTING
handle = l_v_hdl
EXCEPTIONS
OTHERS = 1.
IF sy-subrc 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
ENDIF.
ENDFORM. “frm_get_ftp
浙公网安备 33010602011771号