本文示例如何使用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

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

时间: 2024-08-05 05:04:21

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

Sap 常用Function 说明

函数名 描述 SD_VBAP_READ_WITH_VBELN 根据销售订单读取表vbap中的信息EDIT_LINES 把READ_TEXT返回的LINES中的行按照TDFORMAT="*"重新组织VIEW_MAINTENANCE_CALL 维护表视图 函数名 描述 DY_GET_FOCUS 获得屏幕焦点 DY_GET_SET_FIELD_VALUE 获得或者设置屏幕字段的值 函数名 描述 F4IF_INT_TABLE_VALUE_REQUEST 显示检索help READ_TEXT 读

使用递归方法实现,向FTP服务器上传整个目录结构、从FTP服务器下载整个目录到本地的功能

我最近由于在做一个关于FTP文件上传和下载的功能时候,发现Apache FTP jar包没有提供对整个目录结构的上传和下载功能,只能非目录类型的文件进行上传和下载操作,后来我查阅很多网上的实现方法,再结合自己的理解.以及符合自己的需求,完成了我自己的apache FTP jar包补充类. 上面是背景,基本叙述完毕,下面开始介绍实现方法和代码. 一.环境搭建: 1.使用的FileZilla Server开源免费软件,安装过后建立的本地FTP服务器. 2.使用的apache上下载FTP工具包,引用到

java操作FTP,实现文件上传下载删除操作

上传文件到FTP服务器: /** * Description: 向FTP服务器上传文件 * @param url FTP服务器hostname * @param port FTP服务器端口,如果默认端口请写-1 * @param username FTP登录账号 * @param password FTP登录密码 * @param path FTP服务器保存目录 * @param filename 上传到FTP服务器上的文件名 * @param input 输入流 * @return 成功返回t

Java通过FTP服务器上传下载文件的解决方案

对于使用文件进行交换数据的应用来说,使用FTP 服务器是一个很不错的解决方案.本文使用Apache Jakarta Commons Net(commons-net-3.3.jar)基于FileZilla Server服务器实现FTP服务器上文件的上传/下载/删除等操作. 关于FileZilla Server服务器的详细搭建配置过程,详情请见FileZilla Server安装配置教程.之前有朋友说,上传大文件(几百M以上的文件)到FTP服务器时会重现无法重命名的问题,但本人亲测上传2G的文件到F

如何直接处理FTP服务器上的压缩文件?

我最近要写一个供有相关权限的管理人员查询大额资金明细的程序,界面如下: 所需的数据文件是放在报表服务器上,每天一个压缩文件,该压缩文件中除了所需的储蓄流水账文件外,还有很多其他的文件.如果先把该压缩文件从报表服务器下载到应用服务器上,再进行解压缩处理的话,一是多下载了该压缩文件中我们不需要的其他文件,二是还必须在应用服务器上建立以SessionID等方法标识的临时文件,以免其他用户也在进行查询时文件名冲突,三是使用完毕后还必须删除该临时文件. 我的处理方法是如下: using (ZipInput

用Python写一个ftp下载脚本

用Python写一个ftp下载脚本 ----基于Red Hat Enterprise Linux Server release 6.4 (Santiago):python 2.6.6 Ps:少侠我接触Python半个月以来接到的第一个需求,虽然如此简单的一个脚本,少侠我磕磕绊绊却用了将近一天半的时间才写出来,但还是很开心,毕竟也粗来了,废话不多说,切入正题.因为一开始没有用过ftplib模块,所以各种谷歌度娘一堆资料杂乱不堪,话不清,理不乱的,本文实现的功能简单,下面介绍一下,以免误导读者. 需

Linux中搭建一个ftp服务器详解

来源:Linux社区  作者:luzhi1024 详解Linux中搭建一个ftp服务器. ftp工作是会启动两个通道:控制通道 , 数据通道在ftp协议中,控制连接均是由客户端发起的,而数据连接有两种模式:port模式(主动模式)和pasv(被动模式)PORT模式:在客户端需要接收数据时,ftp_client(大于1024的随机端口)-PORT命令->ftp_server(21)  发送PORT命令,这个PORT命令包含了客户端是用什么端口来接收数据(大于1024的随机端口),在传送数据时,ft

【HANA系列】SAP HANA的ini文件存储路径

公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[HANA系列]SAP HANA的ini文件存储路径 前言部分 大家可以关注我的公众号,公众号里的排版更好,阅读更舒适. 正文部分 原文地址:https://www.cnblogs.com/SAPmatinal/p/11183846.html

利于Wininet创建一个FTP客户端的步骤

Wininet是Win32关于网络的API,MFC也有对于Wininet的封装,可以利用这组API实现FTP和HTTP通信. Wininet API的头文件:Wininet.下面是Wininet建立FTP客户端的一般步骤.第一步:初始话Wininet,实际上就是设置一些关于是否使用代理,访问方式等的参数.第二步:建立一个FTP链接.第三步:操作ftp服务器上的文件.第四步:关闭各种句柄. 作用 函数原型 说明 初始Wininet函数 HINTERNET InternetOpen( LPCTSTR