项目中有以下接口场景:
通过后台作业,SAP ECC系统每天晚上从外部FTP服务器Get文本文件到SAP服务器目录/usr/sap/<SID>/SYS/global/data,然后处理这些文件中的数据,在SAP系统创建对应的业务单据。
本文只介绍一下SAP编程实现从远程FTP服务器读取文件的方法。
SAP中有大量的标准程序实现FTP的功能,主要是函数组SFTP,
最简单的处理流程如下:
首先,使用function FTP_CONNECT 创建与远程FTP服务器的ftp连接,
然后,使用function FTP_COMMAND 执行ftp命令,
最后,调用FTP_DISCONNECT断开与远程FTP服务器的连接。
一、在调用FTP_CONNECT 需要传入RFC Destination参数,FTP常用的有两个,SAPFTP和SAPFTPA,事务码SM59显示,并测试一下连接,确认连接正常。
需要注意的是:
1、SAPFTP用于SAP客户端前端执行,比如我们前台登录SAPGUI操作,要把ftp服务器上的文件get到本地电脑路径,或者上传本地文件等,需要使用这个
2、SAPFTPA 用于SAP服务器端执行,如本次需求,要把FTP服务器的文件get到sap服务器路径
二、在调用FTP_COMMAND时,需要熟悉FTP基本的命令格式,如LS、LCD、GET、PUT等命令
三、SAP有实例程序RSFTP002,可以测试上述功能。
另外,函数FTP_R3_TO_SERVER和FTP_SERVER_TO_R3可以实现FTP文件和ABAP内表的转换,要注意中文乱码问题,本次没有用到,有空测试补充一下。