DATA: lv_server(255) TYPE c VALUE '192.168.xx.xx', "服务器地址
lv_user(255) TYPE c VALUE 'user', "账号
lv_pwd(255) TYPE c VALUE 'xxxx', "密码
lv_dest TYPE rfcdest VALUE 'SAPFTP', "操作标识
lv_handle TYPE i,
lv_len TYPE i,
lv_key TYPE i VALUE 26101957,
lv_cmd(255) TYPE c,
lv_dir(255) TYPE c VALUE 'IQC/10000568057', "指定目录
lv_blob_len TYPE i,
lv_xstr TYPE xstring.
DATA: lv_msg TYPE string.
lv_len = strlen( lv_pwd ).
"密码加密
CALL FUNCTION 'HTTP_SCRAMBLE'
EXPORTING
source = lv_pwd "原始密码
sourcelen = lv_len "密码长度
key = lv_key "加密方式
IMPORTING
destination = lv_pwd. "加密密码
"连接ftp服务器
CALL FUNCTION 'FTP_CONNECT'
EXPORTING
host = lv_server
user = lv_user
password = lv_pwd
rfc_destination = lv_dest
IMPORTING
handle = lv_handle
EXCEPTIONS
OTHERS = 1.
IF sy-subrc <> 0.
"获取错误
CALL FUNCTION 'MESSAGE_TEXT_BUILD'
EXPORTING
msgid = sy-msgid
msgnr = sy-msgno
msgv1 = sy-msgv1
msgv2 = sy-msgv2
msgv3 = sy-msgv3
msgv4 = sy-msgv4
IMPORTING
message_text_output = lv_msg.
ELSE.
"执行CMD命令(列出指定文件夹下所有的文件)
CONCATENATE 'nlist' lv_dir INTO lv_cmd SEPARATED BY space.
CALL FUNCTION 'FTP_COMMAND'
EXPORTING
handle = lv_handle
command = lv_cmd
TABLES
data = lt_ftp
EXCEPTIONS
OTHERS = 2.
LOOP AT lt_ftp INTO ls_ftp WHERE line CS lv_dir.
"读取文件
CALL FUNCTION 'FTP_SERVER_TO_R3'
EXPORTING
handle = lv_handle
fname = ls_ftp-line
IMPORTING
blob_length = lv_blob_len
TABLES
blob = lt_blob
EXCEPTIONS
tcpip_error = 1
command_error = 2
data_error = 3
OTHERS = 4.
"二进制转XString
CALL FUNCTION 'SCMS_BINARY_TO_XSTRING'
EXPORTING
input_length = lv_blob_len
IMPORTING
buffer = lv_xstr
TABLES
binary_tab = lt_blob
EXCEPTIONS
failed = 1
OTHERS = 2.
"将xstring内容调用外部系统文件上传http接口
ENDLOOP.
"关闭连接
CALL FUNCTION 'FTP_DISCONNECT'
EXPORTING
handle = lv_handle
EXCEPTIONS
OTHERS = 4.
ENDIF.
cl_demo_output=>write( lv_msg ).
cl_demo_output=>write( lt_ftp ).
cl_demo_output=>display( ).
SAP连接FTP标准示例程序
RSFTP001 SAPFTP 版本
RSFTP002 执行 FTP 命令
RSFTP003 测试
RSFTP004 FTP 复制
RSFTP005 SAPFTP 检查
RSFTP006 FTP 命令清单
RSFTP007 测试 FB:FTP_SERVER_TO_R3 / FTP_R3_TO_SERVER
RSFTP008 测试 FB:FTP_CLIENT_TO_R3 / FTP_R3_TO_CLIENT
RSFTP009 Test FTP put with Verify
RSFTP011 FTP Copy
CONSTANTS: cns_host TYPE c LENGTH 13 VALUE '172.168.1.250'.
CONSTANTS: cns_usr TYPE c LENGTH 7 VALUE 'username'.
CONSTANTS: cns_pwd TYPE c LENGTH 9 VALUE 'password'.
CONSTANTS: cns_key TYPE i ...
项目中有以下接口场景:
通过后台作业,
SAP
ECC系统每天晚上从外部
FTP
服务器
Get文本
文件
到
SAP
服务器
目录/usr/
sap
//SYS/global/data,然后处理这些
文件
中的数据,在
SAP
系统创建对应的业务单据。
本文只介绍一下
SAP
编程实现从远程
FTP
服务器
读取
文件
的方法。
SAP
中有大量的标
文章目录前言一、连接
FTP
服务器
二、关于
FTP
命令三、相关代码示例1.连接
FTP
服务器
2.打开指定目录3.查询该目录下所有
文件
,并获取
文件
名4.解析相关
文件
5.上传相关
文件
6.剪切相关
文件
至其他目录7.关闭连接
关于
SAP
-
FTP
上操作说明网上可参考的内容略显单薄,特此种下树苗,为后来人好乘凉
一、连接
FTP
服务器
在敲代码前,先进行连接测试,确保
FTP
服务器
与
sap
相通.
维护相关配置表 SM30->
SAP
FTP
_SERVERS_V
FTP
服务器
IP,PORT 由
FTP
团队提供