基于 FTP 的 SAP 与外部系统的文件交互

作者:郑德鼎 约 4 分钟阅读 更新日期:2025-03-02 1 年前更新 标签:ABAP, Data Engineering, SD, WM, 仓库管理, 开发, 数据工程, 销售分销
基于 FTP 的 SAP 与外部系统的文件交互 - 封面图
基于 FTP 的 SAP 与外部系统的文件交互 - 封面图

** 一、前言 **

FTP文件传输协议是用于在网络上进行文件传输的一套标准协议,能够提供高效的数据传输,广泛的用于SAP系统与其他外围系统的文件交换,本文仅记录与windowsserver服务器搭建的FTP服务器的交互

** 二、问题描述 **

在与仓库管理系统(wms)系统的对接过程中,需同时兼顾数据的准确性与实时性。

由于企业性质的限制,导致不能直接采用接口的形式进行数据的传输,故借助中间服务器,已数据文件的形式进行传输。

** 三、系统配置 **

首先拿到FTP服务的连接地址,可以用浏览器的地址栏来检查ftp服务器连接是否畅通,命令是FTP://xxx.xxx.xxx,然后确定文件上传的文家夹路径。

也可以在cmd窗口使用telnetxxx.xx.xx端口来判断

在sm59下面检查ftp的远程连接,在TCP/IP下面,如果没有,执行程序RSFTP002输入参数进行生成。

** 四、系统实现 **

1、对访问密码进行加密操作

CALLFUNCTION'HTTP_SCRAMBLE'EXPORTINGsource=lv_ftp-pwdsourcelen=lv_slenkey=lv_key"默认26101957IMPORTINGdestination=l_pswrd.“输入密码

2、连接ftp服务器,可以写在DO循环里面,直到连接成功在退出DO。

CALLFUNCTION'FTP_CONNECT'EXPORTINGuser=lv_ftp-uname"用户名字password=l_pswrd“密码host=lv_ftp-host”地址rfc_destination='SAPFTP'IMPORTINGhandle=l_handleEXCEPTIONSnot_connected=1OTHERS=2.

3、打开文件路径,通过命令cd来控制

CALLFUNCTION'FTP_COMMAND'EXPORTINGhandle=l_handlecommand=ls_cmd*compress=compressTABLESdata=resultEXCEPTIONScommand_error=1tcpip_error=2.

4、处理数据,转换成二进制文件

CALLFUNCTION'SCMS_TEXT_TO_BINARY'EXPORTINGencoding='8400'IMPORTINGoutput_length=lenTABLEStext_tab=I_TABbinary_tab=data_tabEXCEPTIONSfailed=1OTHERS=2.

5、上传之前设置上传输模式

CALLFUNCTION'FTP_COMMAND'EXPORTINGhandle=l_handlecommand='binary'"'binary'"TABLESdata=resultEXCEPTIONStcpip_error=1command_error=2data_error=3.

6、上传文件,文件下载可以用函数FTP_SERVER_TO_R3

CALLFUNCTION'FTP_R3_TO_SERVER'EXPORTINGhandle=l_handlefname=i_filenameblob_length=lenTABLESblob=data_tabEXCEPTIONStcpip_error=1command_error=2data_error=3.

7、断开ftp连接

断开ftp连接

CALLFUNCTION'FTP_DISCONNECT'EXPORTINGhandle=l_handle.

*断开rfc链接

CALLFUNCTION'RFC_CONNECTION_CLOSE'EXPORTINGdestination=‘SAPFTP’EXCEPTIONSOTHERS=1.

** 五、注意事项 **

1.FTP有俩种传输模式ASCII和Binary。Binary模式不会对数据进行任何处理。Ascii模式会将回车换行转换为本机的回车字符。由于WINDOWS和LINUX的结束符不一样,WINDOWS一般用Binary方式传输,此方式传输到LINUX时会出现^M,也有可能出现回车换行显示不正确的问题

2.上传文件时计算数据长度,会影响上传到服务器的文件的完整性

3.系统提供了许多ftp调用的DEMO,都是以RSFTP*开头的程序

关注我,了解更多SAP开发小技巧

基于 FTP 的 SAP 与外部系统的文件交互 - 封面图
基于 FTP 的 SAP 与外部系统的文件交互 - 封面图
郑德鼎

关于作者:郑德鼎

企业信息化与 SAP 技术顾问,长期专注 SAP ABAP、FI/CO、MM、SD 等模块的技术分享与实战经验总结。查看更多介绍

来源说明:本文内容由「基于FTP的SAP与外部系统的文件交互.md」整理生成,仅用于内部技术分享与学习交流。