Show TOC

RFC Server Program Working With RfcDispatchLocate this document in the navigation structure

Use
            

            /* main program */
            rfc_handle = RfcAccept(...);    /*      Accept RFC connection   */
            if (rfc_handle == RFC_HANDLE_NULL)      /*      Check return code       */
            {
              rfc_error_handling("RfcAccept");      /*      Handle error and get error      */
              return 1;     /*      specification via RfcLastError  */
            }
            rfc_rc = RfcInstallFunction('ABC', abc_function,...);
        /*      Install RFC function 'ABC'      */
                    /*      under the C-routine     */
                    /*      'abc_function'  */
            if (rfc_rc != RFC_OK)   /*      Check return code       */
            {
              rfc_error_handling("Install function 'ABC');
                    /*      Handle error and get error      */
              return 1;     /*      specification via RfcLastError  */
            }
            do      /*      Wait for call or execution of   */
            {
              rfc_rc = RfcDispatch(...);    /*      installed RFC functions until   */
            } while ( rfc_rc == RFC_OK);    /*      connection is closed or */      /*      terminated      */
            RfcClose(...);                          /*      Close RFC connection    */
            

            /* RFC function: 'ABC' */
            static RFC_RC abc_function(RFC_HANDLE rfc_handle)
{
  rfc_rc = RfcGetData(...);     /*      Get associated RFC data */
              if (rfc_rc != RFC_OK) /*      Check return code       */
              {
                rfc_error_handling("RfcGetData");
        /*      Handle error and get error      */
                return 1;   /*      specification via RfcLastError  */
              }
            ...     /*      Process RFC data        */
            rfc_rc = RfcSendData(...);      /*Report result to ABAP program */
              if (rfc_rc != RFC_OK) /*      Check return code       */
              {
                rfc_error_handling("RfcSendData");  
        /*      Handle error and get error      */
                return 1;   /*      specification via RfcLastError  */
              }
            return 0;       /*      Back to RFC Library     */
            }