FTP鏈接

TYPE-POOLS truxs.
DATA: BEGIN OF btab OCCURS 10 ,
        date TYPE d ,
        cdc(10) TYPE c,
        mat LIKE mard-matnr ,
        dj(3) TYPE c ,
        xx TYPE i ,
      END OF btab .

DATA: BEGIN OF ctab OCCURS 10 ,
        date TYPE d ,
        cdc(10) TYPE c,
        mat LIKE mard-matnr ,
        dj(3) TYPE c ,
        xx(5) TYPE c ,
      END OF ctab .

*DATA: BEGIN OF mtab_data OCCURS 0,
*        line(132) TYPE c,
*      END OF mtab_data.

DATA: mi_key TYPE i VALUE 26101957,
      mi_handle TYPE i,
      slen TYPE i .
*DATA: result TYPE TABLE OF text WITH HEADER LINE,
*      bindata TYPE TABLE OF blob WITH HEADER LINE.
DATA: csvtab TYPE truxs_t_text_data  .

DATA : filename(128) .
*       f_size TYPE i .
*filename  =  'testcsv.csv'.
CONCATENATE 'Csv' sy-datum sy-uzeit  '.csv' INTO filename .

PARAMETERS: suser(30) TYPE c LOWER CASE DEFAULT 'firm25',
            spwd(30)  TYPE c LOWER CASE DEFAULT '25firm' ,
            shost(64) TYPE c LOWER CASE DEFAULT '172.16.35.52' .
*
*mc_password = '25firm'.
*DATA : suser(30) TYPE c VALUE  'firm25' ,
*       spwd(30)  TYPE c VALUE  '25firm' ,
*       shost(64) TYPE c VALUE  '172.16.35.52' .

END-OF-SELECTION .

  slen = STRLEN( spwd ).

  btab-date = '20050223'.
  btab-cdc = 'HDC1CDC'.
  btab-mat = '1BP2181BCN1A0'.
  btab-dj = '1'.
  btab-xx = '14' .
  APPEND btab .
  btab-date = '20040513'.
  btab-cdc = 'HDC1CDC'.
  btab-mat = '1BP2181BCN1A0'.
  btab-dj = '1'.
  btab-xx = '265' .
  APPEND btab .
  btab-date = '20050205'.
  btab-cdc = 'HDC1CDC'.
  btab-mat = '1BP2181BCN1A0'.
  btab-dj = '1'.
  btab-xx = '4' .
  APPEND btab .


  LOOP AT btab .
    MOVE-CORRESPONDING btab TO ctab .
    APPEND ctab .
  ENDLOOP .

  CALL FUNCTION 'SAP_CONVERT_TO_CSV_FORMAT'
    TABLES
      i_tab_sap_data       = ctab
    CHANGING
      i_tab_converted_data = csvtab
    EXCEPTIONS
      conversion_failed    = 1
      OTHERS               = 2.

  IF sy-subrc <> 0.
    MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
           WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
  ENDIF.


*  CALL 'AB_RFC_X_SCRAMBLE_STRING'
*  ID 'SOURCE' FIELD spwd
*  ID 'KEY' FIELD mi_key
*  ID 'SCR' FIELD 'X'
*  ID 'DESTINATION' FIELD spwd
*  ID 'DSTLEN' FIELD slen.

  CALL FUNCTION 'HTTP_SCRAMBLE'
    EXPORTING
      SOURCE      = spwd
      sourcelen   = slen
      key         = mi_key
    IMPORTING
      destination = spwd.
  IF sy-subrc <> 0.
    MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
           WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
  ENDIF.

  CALL FUNCTION 'FTP_CONNECT'
    EXPORTING
      user            = suser
      password        = spwd
      host            = shost
      rfc_destination = 'SAPFTPA' "SAPFTP for Front-end FTP and SAPFTPA for access on the application server
    IMPORTING
      handle          = mi_handle
    EXCEPTIONS
      not_connected   = 1
      OTHERS          = 2.
  IF sy-subrc <> 0.
    MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
           WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
  ENDIF.

  CHECK sy-subrc = 0.

  CALL FUNCTION 'FTP_R3_TO_SERVER'
    EXPORTING
      handle         = mi_handle
      fname          = filename
      character_mode = 'X'
    TABLES
      text           = csvtab.
  IF sy-subrc <> 0.
    MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
           WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
  ENDIF.

  CALL FUNCTION 'FTP_DISCONNECT'
    EXPORTING
      handle = mi_handle
    EXCEPTIONS
      OTHERS = 1.
  IF sy-subrc <> 0.
    MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
           WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
  ENDIF. 

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