SAP 数据存到FTP服务器
FORM frm_save2ftp .
DATA: mi_key TYPE i VALUE 26101957,
mi_handle TYPE i,
slen TYPE i .
DATA: csvtab TYPE truxs_t_text_data .
DATA: csvheader(4096).
DATA: csvtab2 TYPE truxs_t_text_data .
slen = STRLEN( p_ftppwd ).
CALL FUNCTION 'SAP_CONVERT_TO_CSV_FORMAT'
EXPORTING
i_field_seperator = ';'
i_filename = p_file "文件将要存储在FTP中的文件名
TABLES
i_tab_sap_data = itab ”内表 Material;Plant
CHANGING
i_tab_converted_data = csvtab "内表转成csv格式表
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.
csvheader = 'Material;Plant'.
INSERT csvheader INTO csvtab INDEX 1. "第一行插入表头
SET EXTENDED CHECK OFF.
CALL FUNCTION 'HTTP_SCRAMBLE'
EXPORTING
SOURCE = p_ftppwd "FTP服务器密码
sourcelen = slen
key = mi_key
IMPORTING
destination = p_ftppwd.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
CALL FUNCTION 'FTP_CONNECT'
EXPORTING
user = p_ftpusr ”FTP用户名
password = p_ftppwd
host = p_ftphst “FTP IP地址
rfc_destination = 'SAPFTPA' "SAPFTPA A OR NOA A可以后台,没A只能前台
IMPORTING
handle = mi_handle
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.
"------------------------
DATA: result TYPE TABLE OF text WITH HEADER LINE,
commands TYPE TABLE OF text WITH HEADER LINE.
CALL FUNCTION 'FTP_COMMAND'
EXPORTING
handle = mi_handle
command = 'set passive on' "在FTP服务器中运行的命令
TABLES
data = result
EXCEPTIONS
command_error = 1
tcpip_error = 2.
IF p_path IS NOT INITIAL.
CONDENSE p_path. "FTP服务器中将要进行存储的文件夹
CONCATENATE 'cd' p_path INTO commands SEPARATED BY space.
CALL FUNCTION 'FTP_COMMAND'
EXPORTING
handle = mi_handle
command = commands "'cd SAP'
TABLES
data = result
EXCEPTIONS
command_error = 1
tcpip_error = 2.
ENDIF.
CALL FUNCTION 'FTP_R3_TO_SERVER'
EXPORTING
handle = mi_handle
fname = p_file "filename
character_mode = 'X'
TABLES
text = csvtab.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
CALL FUNCTION 'FTP_DISCONNECT'
EXPORTING
handle = mi_handle
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.
ENDFORM. " FRM_SAVE2FTP
post SAP-Garson
原文链接:https://blog.csdn.net/weixin_45420932/article/details/129002838文章来自于网络,如果侵犯了您的权益,请联系站长删除!