关于FTP Utilities文章的源头: 在项目中, 用到了很多FTP功能, 也就是接口文件的传输, 在使用过程中, 发现系统中已经存在一个比较好用的类, 用来传输FTP文件. 于是好好的研究了一下这个类, 发现其功能非常强大, 基本涵盖了所有FTP的操作, 不记录实在对不起自己的职业啊.
注意: 这个工具使用的是sftp的命令, 而不是ftp
关于本文的论坛地址: http://www.abaptech.com/bbs/read.php?tid-12.html
关于FTP Utilities的使用:
非常简单, 可以调用函数, 当然也可以直接调用类, 并且如何使用这个函数的Demo程序, 既然已经完成utilities, 那么对于使用肯定是非常简单的,不然只能说明这个接口的设计失败.
关于FTP Utilities的原理:
首先, 需要一个Z表, 用于存储报表或者程序和applicaiton server上的目录的映射关系, 在调用函数的时候, 只需要给出程序ID, 其他一切参数都在constructor中取得, 而constructor方法只需要到z表中根据程序ID取得相关的ftp命令以及操作目录即可.
方法: check_sftp_parameters, 用于检查ftp命令参数的正确性. 这个ftp的命令放到SM49中定义, 在操作系统中, 需要创建ftp命令的script脚本, 用于ftp命令的执行. 这个utilities创建了3个脚本, ftpdelremote用于删除ftp服务器文件, ftptosite传输本地文件到ftp服务器, ftpfromsite用于取得ftp服务器文件到本地. 具体脚本文件将在论坛发布.
方法: sftp_file, 用于传输文件, 也就是执行上面提到的其中的某个脚本.
方法: GET_SFTP_PARAMETERS, 取得sftp参数
方法: GET_COMMAND_STRING_TO, 取得ftptosite需要的参数
方法: CALL_SYSTEM_COMMAND, 调用系统中的脚本(private方法, 在sftp_file中调用)
对于这个utilities, 自建的z表是比较核心的东西, 我就拿其中的几个字段说明,完整的在论坛:
Program Name: 哪个程序要使用sftp
Source Directory: 源路径
Destination Dir: 目标目录, 也就是ftp目录
Transfer Dir: 传输路径, 也就是要传输的文件放置的路径
Command name: 执行的命令,也就是在sm49中定义的命令, 关联到的脚本文件
IP Alias: ftp主机名
FTP Password&FTP User: FTP用户名和密码
总结:
这个utilities有其局限性, 要求必须有sftp(这个一般linux和unix系统都有), 必须自己写脚本(这个要求比较高), 不支持windows系统, 也就是说如果你的sap系统安装在windows机器上这个就不能用了. 好处是sftp命令安全啊,呵呵.
所以翱翔云天在构思, 想把这个utilities使用ftp命令(这个基本每个操作系统都会有)重写, 想来也不会太复杂, 就看有没有时间了.
Sap ftp utilities.. Peachy
你好,可以给我发一邀请码吗?无法看到你的代码哦。谢谢!!
Hi 徐哥, http://www.abaptech.com/bbs/read.php?tid-12.html 里面的源代码没帐号不能下载呢,可以给我一个邀请码么? 谢谢!
@habin001 你站错队了.
看了那么多帖子,都没兴趣顶帖。
但此帖不顶不行
第一次来观摩此博客 留个记号 方便下次造访 谢谢博主