设为首页 收藏本站
查看: 920|回复: 0

[经验分享] ABAP连接FTP服务器

[复制链接]

尚未签到

发表于 2015-11-6 11:11:46 | 显示全部楼层 |阅读模式
  DATA: BEGIN OF ig_ftp_result OCCURS 0,line(100),END OF ig_ftp_result.DATA: l_path(128)       TYPE c.  &quot;文件路径,必须以/结尾DATA: l_filename(128)   TYPE c.  &quot;文件名DATA: l_ftpcommand(100) TYPE c.  &quot;FTP命令DATA: l_handle          TYPE i.                 &quot;HAND&quot;源路径,必须以/结尾DATA: cons_source(128) TYPE c . &quot; VALUE '/usr/sap/SY-SYSID/SYS/src/'.DATA:  cons_dens LIKE zftpt-zpath.                      &quot;目标路径CONSTANTS cons_key TYPE i  VALUE 26101957.*// INITIALIZATIONINITIALIZATION.*服务器上下载文件的路径CONCATENATE '/usr/sap/' sy-sysid '/SYS/src/' INTO cons_source.*// START OF SELECTIONSTART-OF-SELECTION.PERFORM frm_ftp_file.FORM frm_ftp_file .DATA:l_dstlen          TYPE i,                 &quot;DESTINATION LENl_pw(64)          TYPE c.                 &quot;密码* 连接FTP服务器l_pw = 'password'.*-- FTP_CONNECT requires an encrypted password to work *   CREATE THE NEW PW BASE ON LOGIN FTP PASS WORD.CALL 'AB_RFC_X_SCRAMBLE_STRING'         &quot;PASS WORD BUILD FUNCTIONID 'SOURCE'      FIELD l_pw           &quot;PASS WORDID 'KEY'         FIELD cons_key      &quot;THE KEY TO CREATE NEW PWID 'SCR'         FIELD 'X'ID 'DESTINATION' FIELD l_pw           &quot;PASS WORDID 'DSTLEN'      FIELD l_dstlen.      &quot;NEW PASS WORD LENDO 3 TIMES.*   OPEN THE FTP SERVER.CALL FUNCTION 'FTP_CONNECT'EXPORTINGuser            = 'username'   &quot;USERpassword        = l_pw             &quot;PASS WORDhost            = '192.168.1.10'   rfc_destination = 'SAPFTPA'        &quot;DEFAULTIMPORTINGhandle          = l_handleEXCEPTIONSnot_connected   = 1OTHERS          = 2.IF sy-subrc = 0.EXIT.ENDIF.ENDDO.IF sy-subrc <> 0.WRITE :/ sy-datum, sy-uzeit, sy-uname,  'CONNECT FTP FAILED!'.            &quot;MESSAGEGSTOP.ENDIF.* Change local directoryCLEAR l_ftpcommand.CONCATENATE 'lcd' cons_source INTO l_ftpcommand SEPARATED BY space.PERFORM frm_ftp_command USING l_ftpcommand pr_return.IF pr_return = '1'.WRITE:/ sy-datum, sy-uzeit, sy-uname,  'FTP改变本地路径错误!'.STOP.ENDIF.* Change ftp directoryIF cons_dens <> ''.CLEAR l_ftpcommand.CONCATENATE 'cd' cons_dens INTO l_ftpcommand SEPARATED BY space.PERFORM frm_ftp_command USING l_ftpcommand pr_return.IF pr_return = '1'.WRITE:/ sy-datum, sy-uzeit, sy-uname,  '改变FTP路径出现错误!'.STOP.ENDIF.ENDIF.* Change TRANSFER MODECLEAR l_ftpcommand.*  l_ftpcommand = 'binary'.l_ftpcommand = 'ascii'.PERFORM frm_ftp_command USING l_ftpcommand pr_return.IF pr_return = '1'.WRITE:/ sy-datum, sy-uzeit, sy-uname,  '改变FTP传输模式出现错误!'.STOP.ENDIF.* Put File into FTP SERVERCLEAR l_ftpcommand.CONCATENATE 'put'  l_filename INTO l_ftpcommand SEPARATED BY space.PERFORM frm_ftp_command USING l_ftpcommand pr_return.IF pr_return = '1'.WRITE:/ sy-datum, sy-uzeit, sy-uname,  '文件传输中出现错误!'.STOP.ENDIF.*  断开FTP服务器CALL FUNCTION 'FTP_DISCONNECT'EXPORTINGhandle = l_handle.WRITE:/ sy-datum, sy-uzeit, sy-uname,  '文件传输成功!'.ENDFORM.                    &quot; FRM_FTP_FILE*************************************************************************& FORM FRM_FTP_COMMAND                                                **************************************************************************& FTP Command                                                         *************************************************************************FORM frm_ftp_command USING pr_command pr_ret.CALL FUNCTION 'FTP_COMMAND'EXPORTINGhandle                = l_handlecommand               = pr_command*     COMPRESS              =*     RFC_DESTINATION       =*     VERIFY                =*   IMPORTING*     FILESIZE              =*     FILEDATE              =*     FILETIME              =TABLESdata                  = ig_ftp_resultEXCEPTIONStcpip_error           = 1command_error         = 2data_error            = 3OTHERS                = 4.* DisconnectIF sy-subrc <> 0.pr_ret = '1'.CALL FUNCTION 'FTP_DISCONNECT'EXPORTINGhandle = l_handle.EXIT.ENDIF.ENDFORM.                    &quot;FRM_FTP_COMMAND

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-135826-1-1.html 上篇帖子: 用Delphi做了个从FTP服务器更新的程序,把遇到的一些小问题在这儿,以备查用 下篇帖子: FTP(文件传输协议)工作原理转
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表