Show TOC

Background documentationtRFC between SAP and external Systems Locate this document in the navigation structure


On external systems, the transactional RFC cannot be fully implemented in the RFC library, because of the following reasons:

  • A database is not always available in external systems.

  • The RFC library cannot always repeat the RFC call in case of errors, such as network errors.

Therefore, the transactional RFC interface from external systems to an SAP system is implemented as follows:

  • RFC library

    The RFC library provides some special RFC calls, such as RfcGetTransactionID, RfcInvokeInTransaction and RfcSetTransactionHandler for working with tRFC. It will pack and unpack RFC data between RFC format and tRFC format.

    For an SAP system, there is no difference whether these calls are requested from another SAP system or from an external system. For an RFC server program, the RFC function itself (only the RFC function, not the whole RFC server program) can be executed normally, as it is called via 'normal' RFC with RfcGetData and RfcSendData.

  • RFC client programs and RFC server programs

    Both programs have to manage the TIDs themselves for checking and executing the requested RFC functions exactly once as the tRFC component in an SAP system does.

  • SAP systems

    In SAP systems, no additional changes are necessary in ABAP programs working with external RFC programs which use the tRFC interface. For ABAP programs, such as RFC client programs, the destination defined in CALL FUNCTION must have 'T' as connection type.

    Note Note

    As of AS ABAP Release 710 you can use the re-designed variant of tRFC and qRFC, now called background RFC (bgRFC) for the RFC communication. The NW RFC SDK also supports bgRFC. However, the NW RFC SDK itself treats a bgRFC call like a tRFC call. Within the SDK there is no visible difference between tRFC/qRFC and bgRFC processing.

    End of the note.