批量上傳SAP服務器文件至FTP服務器

*&---------------------------------------------------------------------*
*& Report  ZSAP_PLM_SAP
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*

REPORT  ZSAP_PLM_SAP1.

DATA: USER(30) TYPE C VALUE 'sap' ,
      PWD(30) TYPE C VALUE 'sapftp1234a',
      HOST(64) TYPE C VALUE '10.12.38.45',
      FTP_PWD(30) TYPE C,
      DEST LIKE RFCDES-RFCDEST VALUE 'SAPFTPA',
      KEY TYPE I VALUE 26101957,
      SLEN TYPE I,
      HDL TYPE I,
      COMPRESS TYPE C VALUE 'N' ,
      CC_ASCII(5) VALUE 'ascii',
      FTPCOMMAND(100) TYPE C.  "FTP㏑.

DATA: BEGIN OF RESULT OCCURS 0,
      LINE(100) TYPE C,
      END OF RESULT.

PARAMETERS : ftp_DIR LIKE EPSF-EPSDIRNAM default '\backup',
             sap_DIR LIKE EPSF-EPSDIRNAM default 'e:\FTP\PLM\'.

SLEN = STRLEN( PWD ).

CALL FUNCTION 'HTTP_SCRAMBLE'
  EXPORTING
    SOURCE      = PWD
    SOURCELEN   = SLEN
    KEY         = KEY
  IMPORTING
    DESTINATION = FTP_PWD.

CALL FUNCTION 'FTP_CONNECT'
  EXPORTING
    USER            = USER
    PASSWORD        = FTP_PWD
    HOST            = HOST
    RFC_DESTINATION = DEST
  IMPORTING
    HANDLE          = HDL.

IF SY-SUBRC = 0.
  WRITE:/ 'RFC Connection Sucessful', SY-SUBRC.
ELSE.
  WRITE:/ 'RFC Connection Fails', SY-SUBRC.
  CHECK 1 = 2.
ENDIF.

*---------->
DATA: I_FILENM(60),
      ST_COMM(250),
      WK_LPATH(60),
      TB_COMM LIKE TABLE OF ST_COMM.

REFRESH: TB_COMM.
CLEAR:   ST_COMM.

concatenate 'lcd' sap_dir into st_comm separated by space.
APPEND ST_COMM TO TB_COMM.
CLEAR: ST_COMM.

concatenate 'cd' ftp_dir into st_comm separated by space.
APPEND ST_COMM TO TB_COMM.
CLEAR: ST_COMM.

concatenate 'mput' '*.*' into st_comm separated by space.
APPEND ST_COMM TO TB_COMM.
CLEAR: ST_COMM.

*--------->
DATA:ST_RSLT(100) TYPE C,
     TB_RSLT LIKE TABLE OF ST_RSLT.
CALL FUNCTION 'FTP_COMMAND_LIST'
  EXPORTING
    HANDLE        = HDL
  TABLES
    DATA          = TB_RSLT
    COMMANDS      = TB_COMM
  EXCEPTIONS
    COMMAND_ERROR = 1
    TCPIP_ERROR   = 2.

CASE SY-SUBRC.
  WHEN '1'.
    RESULT = 'N'.
    WRITE :/(10) SY-SUBRC,
            (10) 'Command Error'.
  WHEN '2'.
    RESULT = 'N'.
    WRITE :/(10) SY-SUBRC,
            (10) 'Tcpip Error'.
  WHEN OTHERS.
    RESULT = 'Y'.
ENDCASE.

CALL FUNCTION 'FTP_DISCONNECT'
  EXPORTING
    HANDLE = HDL.

CALL FUNCTION 'RFC_CONNECTION_CLOSE'
  EXPORTING
    DESTINATION = DEST
  EXCEPTIONS
    OTHERS      = 1.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章