zoukankan      html  css  js  c++  java
  • Receiving Results from an Asynchronous RFC

    REPORT  ZTEST_RFC.
    
    DATA: INFO LIKE RFCSI,
    * Result of RFC_SYSTEM_INFO function
          SYSTEM_MSG(80) VALUE SPACE.
    * Exception handling
    
    CALL FUNCTION 'RFC_SYSTEM_INFO'
         STARTING NEW TASK 'INFO'
         PERFORMING RETURN_INFO ON END OF TASK.
    WRITE: 'Wait for reply'.
    ...
    AT USER-COMMAND.
    * Return from FORM routine RETURN_INFO
       IF SYSTEM_MSG = SPACE.
         WRITE: 'Destination =', INFO-RFCDEST.
       ELSE.
         WRITE SYSTEM_MSG.
       ENDIF.
    ...
    FORM RETURN_INFO USING TASKNAME.
    
      RECEIVE RESULTS FROM FUNCTION 'RFC_SYSTEM_INFO'
          IMPORTING  RFCSI_EXPORT = INFO
          EXCEPTIONS SYSTEM_FAILURE MESSAGE SYSTEM_MSG.
    
    *  REFRESH SCREEN. "Simulate command field = return key"this is obsolete
      SET USER-COMMAND 'OKCD'.
    ENDFORM.
    

    The SET USER-COMMAND ‘OKCD’ statement replaces the REFRESH SCREEN command. REFRESH SCREEN is no longer maintained and should therefore not be used.if the user had entered the function in the command field and pressed ENTER. The current positioning of the list and the cursor are thus taken into account.

    CALL FUNCTION 'XXXXXXX'
          STARTING NEW TASK 'AAA'
          DESTINATION 'NONE'
          PERFORMING RETURN_INFO ON END OF TASK
          EXPORTING
            I_VBELN               = L_VBELN
          TABLES
            E_RETURN              = L_IT_RETURN[]
          EXCEPTIONS
            COMMUNICATION_FAILURE = 1  MESSAGE MSG
            SYSTEM_FAILURE        = 2  MESSAGE MSG.
    
        IF SY-SUBRC = 0.
          WAIT UNTIL SEMAPHORE = 'X'.
        ELSE.
          WRITE MSG.
          MESSAGE 'Synchronize Failed' TYPE 'A'.
        ENDIF.
    
    
    FORM RETURN_INFO USING TASKNAME.
      RECEIVE RESULTS FROM FUNCTION 'XXXXXXX'
          IMPORTING  RFCSI_EXPORT = AAA
            TABLES E_RETURN  = GV_IT_RETURN[]
          EXCEPTIONS
             COMMUNICATION_FAILURE = 1 MESSAGE MSG
             SYSTEM_FAILURE        = 2 MESSAGE MSG.
      RET_SUBRC = SY-SUBRC. "Set RET_SUBRC
      SEMAPHORE = 'X'. "Reset semaphore
    ENDFORM.     
    

    You can use the WAIT statement with PERFORMING form ON END OF TASK to wait for the reply to a previously started asynchronous call. In this case, WAIT must be in the same program context.

  • 相关阅读:
    NIS server on centOS 7
    fabric-python-基于centos 7
    玩玩Jenkins
    身份认证技术性能对比
    Linux时区设置和时间同步-基于CentOS 6(最小安装)
    openldap+phpadmin的最简安装和配置
    tomcat8.5的网页管理(远程)配置、SSL证书配置-基于Debian 9
    tomcat添加为service服务-基于Debian 9
    安装、配置MySQL5.8基于Debian 9(用apt-get install 默认安装结果是mariadb)
    下载并配置jdk环境-基于debain 9
  • 原文地址:https://www.cnblogs.com/aurora-cj/p/11025467.html
Copyright © 2011-2022 走看看