相关文章推荐
含蓄的绿茶  ·  飘窗_百度百科·  1 年前    · 
憨厚的香烟  ·  广西推行《壮文方案》60周年壮语文事业稳步发 ...·  1 年前    · 
沉稳的生姜  ·  北京大学哲学系宗教学系·  1 年前    · 
长情的楼房  ·  金庸笔下的方腊是明教教主,为何没灭梁山?只怪 ...·  1 年前    · 
刚失恋的香蕉  ·  没有旗袍,就不叫中国风?_手机新浪网·  1 年前    · 
小百科  ›  matinal:SAP ABAP 如何读取FTP文件开发者社区
abap ftp ftp命令 sap abap
无邪的便当
8 月前
matinal

matinal:SAP ABAP 如何读取FTP文件

前往小程序,Get 更优 阅读体验!
立即前往
腾讯云
开发者社区
文档 建议反馈 控制台
首页
学习
活动
专区
工具
TVP
最新优惠活动
文章/答案/技术大牛
发布
首页
学习
活动
专区
工具
TVP 最新优惠活动
返回腾讯云官网
matinal
首页
学习
活动
专区
工具
TVP 最新优惠活动
返回腾讯云官网
社区首页 > 专栏 > matinal:SAP ABAP 如何读取FTP文件

matinal:SAP ABAP 如何读取FTP文件

作者头像
matinal
发布 于 2023-11-07 08:11:02
290 0
发布 于 2023-11-07 08:11:02
举报
文章被收录于专栏: SAP Technical

SAP账号添加权限对象S_ADMI_FCD

在表SAPFTP_SERVERS维护ftp服务器地址,建议直接输入*

代码语言: javascript
复制
TYPES: BEGIN OF ty_ftp,
         line(255) TYPE c,
       END OF ty_ftp,
       BEGIN OF ty_blob,
         line(255) TYPE x,
       END OF ty_blob.
DATA: lt_ftp  TYPE TABLE OF ty_ftp,
      ls_ftp  TYPE ty_ftp,
      lt_blob TYPE TABLE OF ty_blob.
DATA: lv_server(255) TYPE c VALUE '192.168.xx.xx', "服务器地址
      lv_user(255)   TYPE c VALUE 'user',          "账号
      lv_pwd(255)    TYPE c VALUE 'xxxx',          "密码
      lv_dest        TYPE rfcdest VALUE 'SAPFTP',  "操作标识
      lv_handle      TYPE i,
      lv_len         TYPE i,
      lv_key         TYPE i VALUE 26101957,
      lv_cmd(255)    TYPE c,
      lv_dir(255)    TYPE c VALUE 'IQC/10000568057', "指定目录
      lv_blob_len    TYPE i,
      lv_xstr        TYPE xstring.
DATA: lv_msg TYPE string.
lv_len = strlen( lv_pwd ).
"密码加密
CALL FUNCTION 'HTTP_SCRAMBLE'
  EXPORTING
    source      = lv_pwd "原始密码
    sourcelen   = lv_len "密码长度
    key         = lv_key "加密方式
  IMPORTING
    destination = lv_pwd. "加密密码
"连接ftp服务器
CALL FUNCTION 'FTP_CONNECT'
  EXPORTING
    host            = lv_server
    user            = lv_user
    password        = lv_pwd
    rfc_destination = lv_dest
  IMPORTING
    handle          = lv_handle
  EXCEPTIONS
    OTHERS          = 1.
IF sy-subrc <> 0.
  "获取错误
  CALL FUNCTION 'MESSAGE_TEXT_BUILD'
    EXPORTING
      msgid               = sy-msgid
      msgnr               = sy-msgno
      msgv1               = sy-msgv1
      msgv2               = sy-msgv2
      msgv3               = sy-msgv3
      msgv4               = sy-msgv4
    IMPORTING
      message_text_output = lv_msg.
ELSE.
  "执行CMD命令(列出指定文件夹下所有的文件)
  CONCATENATE 'nlist' lv_dir INTO lv_cmd SEPARATED BY space.
  CALL FUNCTION 'FTP_COMMAND'
    EXPORTING
      handle  = lv_handle
      command = lv_cmd
    TABLES
      data    = lt_ftp
    EXCEPTIONS
      OTHERS  = 2.
  LOOP AT lt_ftp INTO ls_ftp WHERE line CS lv_dir.
    "读取文件
    CALL FUNCTION 'FTP_SERVER_TO_R3'
      EXPORTING
        handle        = lv_handle
        fname         = ls_ftp-line
      IMPORTING
        blob_length   = lv_blob_len
      TABLES
        blob          = lt_blob
      EXCEPTIONS
        tcpip_error   = 1
        command_error = 2
        data_error    = 3
        OTHERS        = 4.
    "二进制转XString
    CALL FUNCTION 'SCMS_BINARY_TO_XSTRING'
      EXPORTING
        input_length = lv_blob_len
      IMPORTING
        buffer       = lv_xstr
      TABLES
        binary_tab   = lt_blob
      EXCEPTIONS
        failed       = 1
        OTHERS       = 2.
    "将xstring内容调用外部系统文件上传http接口
  ENDLOOP.
  "关闭连接
  CALL FUNCTION 'FTP_DISCONNECT'
    EXPORTING
      handle = lv_handle
    EXCEPTIONS
      OTHERS = 4.
ENDIF.
cl_demo_output=>write( lv_msg ).
cl_demo_output=>write( lt_ftp ).
cl_demo_output=>display(  ).

SAP连接FTP标准示例程序

RSFTP001                       SAPFTP 版本 RSFTP002                       执行 FTP 命令 RSFTP003                       测试 RSFTP004                       FTP 复制

 
推荐文章
含蓄的绿茶  ·  飘窗_百度百科
1 年前
憨厚的香烟  ·  广西推行《壮文方案》60周年壮语文事业稳步发展-新华网
1 年前
沉稳的生姜  ·  北京大学哲学系宗教学系
1 年前
长情的楼房  ·  金庸笔下的方腊是明教教主,为何没灭梁山?只怪他把梁山写得更强_ ...
1 年前
刚失恋的香蕉  ·  没有旗袍,就不叫中国风?_手机新浪网
1 年前
今天看啥   ·   Py中国   ·   codingpro   ·   小百科   ·   link之家   ·   卧龙AI搜索
删除内容请联系邮箱 2879853325@qq.com
小百科 - 百科知识指南
© 2024 ~ 沪ICP备11025650号