【转】

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

sap ftp 处理的更多相关文章

  1. SAP FTP FOR ABAP programing

    近来忙的不可开交,忙的一塌糊涂,呵呵,今天怀揣愧疚之心,上来分享博文一篇,算是对自己的一点安慰.   首先在SAP系统中提供了很多的FTP示例程序,如下: RSFTP001         SAPFT ...

  2. [SAP ABAP开发技术总结]FTP到文件服务器,服务器上文件读写

    声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...

  3. 【ABAP系列】SAP ABAP 实现FTP的文件上传与下载

    公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[ABAP系列]SAP ABAP 实现FTP的文 ...

  4. 【ABAP系列】SAP ABAP 从FTP服务器读取文件到本地

    公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[ABAP系列]SAP ABAP 从FTP服务器 ...

  5. SAP ABAP: 把内表数据以excel或csv格式,通过前台或者后台的方式上传至FTP服务器

    今天接到一个FTP的需求,就是每天晚上把当天某个报表的数据自动保存excel上传到FTP服务器. SAP已经有现成的FTP函数使用,可以通过函数的方式来实现,实现前先准备一些数据: User:登录FT ...

  6. SAP中使用FTP服务

    SAP中简单的FTP技术实现基本上如下几个步骤: 1.SM59建立FTP的RFC destination. 可以通过执行SAP的标准程序RSFTP005,自动创建两个名为SAPFTP何SAPFTPA的 ...

  7. ABAP开发顾问必备:SAP ABAP开发技术总结

    声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...

  8. Sap 常用Function 说明

    函数名 描述 SD_VBAP_READ_WITH_VBELN 根据销售订单读取表vbap中的信息EDIT_LINES 把READ_TEXT返回的LINES中的行按照TDFORMAT=“*”重新组织VI ...

  9. SAP常用命令及BASIS操作

    Pfcg         角色,权限参数文件配置Su53        查看权限对象  st01  跟踪St22         看dump,以分析错误  eg.找到ABAP程序出错的地方,找出fou ...

随机推荐

  1. PS PNG导出的时候是否交错有什么影响

    已解决 导出png格式交错什么意思 我百度的答案一律说png支持交错,可是交错两个字的意思是什么啊,那位专家请指教.谢谢啦!! 问题补充: 我用photoshop或者coreldraw制作按钮时候不是 ...

  2. javascript - 封装ajax

    封装,使用有示例. // 封装示例: function ajax(url, method, params, done) { var xhr = null; method = method.toUppe ...

  3. java web中 classpath路径 详解

    在使用ssh等框架开发web程序时配置文件(xml和properties)存放的路径一般为src下,当部署程序时则必须存在于classes路径下,具体如下 src不是classpath, WEB-IN ...

  4. 谈一谈Http Request 与Http Response

    1.什么是HTTPRequest与HTTP Response? 我们平时打开浏览器,输入网址,点击Enter按键,然后我们想要的网页就呈现在我们的眼前,可是这个过程是怎么实现的呢? 简单来说是这样的: ...

  5. 【整理】mysql中information_schema.tables字段说明

    [整理]mysql中information_schema.tables字段说明 2016-05-04 16:47:50|  分类: 默认分类|举报|字号 订阅     下载LOFTER我的照片书  | ...

  6. Github上的PHP开源资源汇总

    依赖管理 ——用于依赖管理的包和框架 Composer/Packagist : 一个包和依赖管理器 Composer Installers:  一个多框架Composer库安装器 Pickle: 可以 ...

  7. H5 打开App

    IOS 1.只能在safari浏览器打开, 2.必须App安装的情况下. 3.IOS必须配置 URLSchemes 为 "yidiandai://"  才可以. <!DOCT ...

  8. 《HTML 5网页开发实例具体解释》样章、内容简单介绍、前言

    http://spu.jd.com/1167757597.html http://product.dangdang.com/23484942.html 样章 http://download.csdn. ...

  9. stage3D基础五-----Working with 3D cameras(转)

    原文地址:http://www.adobe.com/cn/devnet/flashplayer/articles/3d-cameras.html 原文是英文的,这里就不贴了,内容主要介绍直接使用相机坐 ...

  10. Monkey源代码分析之事件源

    上一篇文章<Monkey源代码分析之执行流程>给出了monkey执行的整个流程.让我们有一个概貌,那么往后的文章我们会尝试进一步的阐述相关的一些知识点. 这里先把整个monkey类的结构图 ...