sap 服务器 拷贝文件,本文示例如何使用SAP FTP Function将文件从应用服务器传输到另外一个FTP服务器上。...

本文示例如何使用SAP FTP Function将文件从应用服务器传输到另外一个FTP服务器上。

DATA: BEGIN OF ig_ftp_result OCCURS 0,

line(100),

END OF ig_ftp_result.

DATA: l_path(128)       TYPE c.  "文件路径,必须以/结尾

DATA: l_filename(128)   TYPE c.  "文件名

DATA: l_ftpcommand(100) TYPE c.  "FTP命令

DATA: l_handle          TYPE i.                 "HAND

"源路径,必须以/结尾

DATA: cons_source(128) TYPE c . " VALUE ‘/usr/sap/SY-SYSID/SYS/src/‘.

DATA:  cons_dens LIKE zftpt-zpath.                      "目标路径

CONSTANTS cons_key TYPE i  VALUE 26101957.

*// INITIALIZATION

INITIALIZATION.

*服务器上下载文件的路径

CONCATENATE ‘/usr/sap/‘ sy-sysid ‘/SYS/src/‘ INTO cons_source.

*// START OF SELECTION

START-OF-SELECTION.

PERFORM frm_ftp_file.

FORM frm_ftp_file .

DATA:

l_dstlen          TYPE i,                 "DESTINATION LEN

l_pw(64)          TYPE c.                 "密码

* 连接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‘         "PASS WORD BUILD FUNCTION

ID ‘SOURCE‘      FIELD l_pw           "PASS WORD

ID ‘KEY‘         FIELD cons_key      "THE KEY TO CREATE NEW PW

ID ‘SCR‘         FIELD ‘X‘

ID ‘DESTINATION‘ FIELD l_pw           "PASS WORD

ID ‘DSTLEN‘      FIELD l_dstlen.      "NEW PASS WORD LEN

DO 3 TIMES.

*   OPEN THE FTP SERVER.

CALL FUNCTION ‘FTP_CONNECT‘

EXPORTING

user            = ‘username‘   "USER

password        = l_pw             "PASS WORD

host            = ‘192.168.1.10‘

rfc_destination = ‘SAPFTPA‘        "DEFAULT

IMPORTING

handle          = l_handle

EXCEPTIONS

not_connected   = 1

OTHERS          = 2.

IF sy-subrc = 0.

EXIT.

ENDIF.

ENDDO.

IF sy-subrc <> 0.

WRITE :/ sy-datum, sy-uzeit, sy-uname,  ‘CONNECT FTP FAILED!‘.            "MESSAGEG

STOP.

ENDIF.

* Change local directory

CLEAR 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 directory

IF 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 MODE

CLEAR 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 SERVER

CLEAR 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‘

EXPORTING

handle = l_handle.

WRITE:/ sy-datum, sy-uzeit, sy-uname,  ‘文件传输成功!‘.

ENDFORM.                    " FRM_FTP_FILE

************************************************************************

*& FORM FRM_FTP_COMMAND                                                *

************************************************************************

*& FTP Command                                                         *

************************************************************************

FORM frm_ftp_command USING pr_command pr_ret.

CALL FUNCTION ‘FTP_COMMAND‘

EXPORTING

handle                = l_handle

command               = pr_command

*     COMPRESS              =

*     RFC_DESTINATION       =

*     VERIFY                =

*   IMPORTING

*     FILESIZE              =

*     FILEDATE              =

*     FILETIME              =

TABLES

data                  = ig_ftp_result

EXCEPTIONS

tcpip_error           = 1

command_error         = 2

data_error            = 3

OTHERS                = 4

.

* Disconnect

IF sy-subrc <> 0.

pr_ret = ‘1‘.

CALL FUNCTION ‘FTP_DISCONNECT‘

EXPORTING

handle = l_handle.

EXIT.

ENDIF.

ENDFORM.                    "FRM_FTP_COMMAND

版权声明:本文为博主原创文章,未经博主允许不得转载。

原文:http://blog.csdn.net/champaignwolf/article/details/47271595

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值