FTP_SERVER_TO_R3 зависает при использовании с RFC SAPFTPA - PullRequest
0 голосов
/ 05 декабря 2018

Я работаю над программой, которая считывает указанные текстовые файлы с FTP-сервера в таблицу данных.FM FTP_SERVER_TO_R3, кажется, вполне подходит для моего случая.

Я использую RFC SAPFTPA в качестве пункта назначения.FTP_CONNECT всегда работает нормально, но программа иногда зависает, когда дело доходит до FTP_SERVER_TO_R3.

Иногда в цикле многократных вызовов FM FTP_SERVER_TO_R3 первый и второй интервал хороши, затем в следующем интервале он зависает.

Иногда он даже зависает в первый раз.

Мой вопрос: Кто-нибудь может сказать мне, почему эта ошибка может произойти при использовании SAPFTPA?

Мой код ниже:

"Connect to FTP server 
********************************************************************
CALL FUNCTION 'HTTP_SCRAMBLE'
  EXPORTING
    SOURCE      = FTP_SERVERINFO-PWD
    SOURCELEN   = LW_SRCLEN
    KEY         = 26101957
  IMPORTING
    DESTINATION = SCRAMBLED_PW.
CONCATENATE FTP_SERVERINFO-FTP_SERVER_NAME FTP_SERVERINFO-FTP_SERVER_PORT         
INTO LW_HOST SEPARATED BY SPACE.
CALL FUNCTION 'FTP_CONNECT'
    EXPORTING
      USER            = FTP_SERVERINFO-USER_NAME
      PASSWORD        = SCRAMBLED_PW                 " Password
      HOST            = LW_HOST                 " FTP server
      RFC_DESTINATION = DEST                " RFC Destination
    IMPORTING
      HANDLE          = HANDLER
    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.
LOOP AT READ_FILES ASSIGNING FIELD-SYMBOL(<FILE>).
  "Read file to IT  *****************************************************************
  CALL FUNCTION 'FTP_SERVER_TO_R3'
    EXPORTING
      HANDLE         = HANDLER
      FNAME          = <FILE>-FILE_NAME
      CHARACTER_MODE = 'X'
    TABLES
      TEXT           = IT_TEXT[]
    EXCEPTIONS
      TCPIP_ERROR    = 1
      COMMAND_ERROR  = 2
      DATA_ERROR     = 3                " Internal Error
      OTHERS         = 4.
  IF SY-SUBRC <> 0.
    EXIT.
  ENDIF.
  "After reading into IT, load to transparent table and log the transaction. ***************************************************
  DATA: FILE_NAME(200) TYPE C.
  FILE_NAME = <FILE>-FILE_NAME.
  PERFORM MAP_DATA TABLES IT_TEXT USING FILE_NAME.
  REFRESH IT_TEXT[].


ENDLOOP.
  "Disconnect FTP Connection *****************************************************************************************************
  CALL FUNCTION 'FTP_DISCONNECT'
    EXPORTING
      HANDLE = HANDLER.
"Close RFC Connection
CALL FUNCTION 'RFC_CONNECTION_CLOSE'
  EXPORTING
    DESTINATION          = DEST              " Name of the RFC destination
  EXCEPTIONS
    DESTINATION_NOT_OPEN = 1                " Specified destination is not open.
    OTHERS               = 2.
IF SY-SUBRC <> 0.
  EXIT.
ENDIF.

Было бы замечательно, если бы кто-нибудь мог дать мне подсказку.

Большое спасибо и наилучшие пожелания!

TuanNQ

...