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


公众号: matinal
本文作者: matinal
 

 

前言部分

大家可以关注我的公众号,公众号里的排版更好,阅读更舒适。

正文部分

DATA: hdl TYPE i,
      key TYPE i VALUE 26101957,
      dstlen TYPE i,
      blob_length TYPE i.
DATA filepath TYPE string .

DATA: BEGIN OF blob OCCURS 0,
      line(100) TYPE x,
      END OF blob.

PARAMETERS: user(64) TYPE c ,
            pwd(64) TYPE c ,
            host(64) TYPE c ,
            filename(80) TYPE c ,
            name2(80) TYPE c,
            dest LIKE rfcdes-rfcdest DEFAULT 'SAPFTP'.
PARAMETERS: p_file LIKE rlgrap-filename
   DEFAULT 'c:\test.xls'.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.
  PERFORM get_p_file USING p_file text-006.

START-OF-SELECTION.
TRANSLATE  user TO lowER CASE.

  CALL 'AB_RFC_X_SCRAMBLE_STRING'
    ID 'SOURCE'      FIELD pwd    ID 'KEY'         FIELD key
    ID 'SCR'         FIELD 'X'    ID 'DESTINATION' FIELD pwd
    ID 'DSTLEN'      FIELD dstlen.


  CALL FUNCTION 'FTP_CONNECT'
    EXPORTING
      user            = user
      password        = pwd
      host            = host
      rfc_destination = dest
    IMPORTING
      handle          = hdl.


  CALL FUNCTION 'FTP_SERVER_TO_R3'
    EXPORTING
      handle      = hdl
      fname       = filename
    IMPORTING
      blob_length = blob_length
    TABLES
      blob        = blob.


  filepath = p_file .
  CALL FUNCTION 'GUI_DOWNLOAD'
    EXPORTING
      filename = filepath
      filetype = 'BIN'
    TABLES
      data_tab = blob.



  CALL FUNCTION 'FTP_DISCONNECT'
    EXPORTING
      handle = hdl.
*&---------------------------------------------------------------------*
*&      Form  get_p_file
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->P_P_FILE  text
*      -->P_TEXT_006  text
*----------------------------------------------------------------------*
FORM get_p_file  USING    l_filename
                          l_text.
  CALL FUNCTION 'WS_FILENAME_GET'
    EXPORTING
      def_filename     = space
      def_path         = l_filename
      mask             = ',*.xls ,*.xls.'
      mode             = 'O'
      title            = l_text
    IMPORTING
      filename         = l_filename
    EXCEPTIONS
      inv_winsys       = 04
      no_batch         = 08
      selection_cancel = 12
      selection_error  = 16.


ENDFORM.                    " get_p_file

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM