** 一、前言 **
FTP文件传输协议是用于在网络上进行文件传输的一套标准协议,能够提供高效的数据传输,广泛的用于SAP系统与其他外围系统的文件交换,本文仅记录与windowsserver服务器搭建的FTP服务器的交互
** 二、问题描述 **
在与仓库管理系统(wms)系统的对接过程中,需同时兼顾数据的准确性与实时性。
由于企业性质的限制,导致不能直接采用接口的形式进行数据的传输,故借助中间服务器,已数据文件的形式进行传输。
** 三、系统配置 **
首先拿到FTP服务的连接地址,可以用浏览器的地址栏来检查ftp服务器连接是否畅通,命令是FTP://xxx.xxx.xxx,然后确定文件上传的文家夹路径。
也可以在cmd窗口使用telnetxxx.xx.xx端口来判断
在sm59下面检查ftp的远程连接,在TCP/IP下面,如果没有,执行程序RSFTP002输入参数进行生成。
** 四、系统实现 **
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.CALLFUNCTION'FTP_COMMAND'EXPORTINGhandle=l_handlecommand=ls_cmd*compress=compressTABLESdata=resultEXCEPTIONScommand_error=1tcpip_error=2.CALLFUNCTION'SCMS_TEXT_TO_BINARY'EXPORTINGencoding='8400'IMPORTINGoutput_length=lenTABLEStext_tab=I_TABbinary_tab=data_tabEXCEPTIONSfailed=1OTHERS=2.CALLFUNCTION'FTP_COMMAND'EXPORTINGhandle=l_handlecommand='binary'"'binary'"TABLESdata=resultEXCEPTIONStcpip_error=1command_error=2data_error=3.CALLFUNCTION'FTP_R3_TO_SERVER'EXPORTINGhandle=l_handlefname=i_filenameblob_length=lenTABLESblob=data_tabEXCEPTIONStcpip_error=1command_error=2data_error=3.断开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,也有可能出现回车换行显示不正确的问题
关注我,了解更多SAP开发小技巧