REMOTE
FUNCTION CALL RFC
Communication between
applications in different systems in the SAP environment includes connections
between SAP systems as well as between SAP systems and non-SAP systems.
Remote Function Call (RFC) is the standard SAP
interface for communication
between SAP systems. RFC calls a function to be executed in a remote
system.
Tcode for this is SM59.
Tcode for this is SM59.
Type of RFC
01. Synchronous RFC (sRFC) : This type of RFC executes the function call based on synchronous communication, meaning that the systems involved must both be available at the time the call is made.
02. Asynchronous RFC (aRFC) : This type of RFC executes the function call based on asynchronous communication, meaning that The remote system need not be available at the time when the RFC client program is executing tRFC.
For communication between different systems and for parallel processing of
selected tasks.
03. TransnationalRFC (tRFC) : Transactional RFC (tRFC, previously known as asynchronous RFC) is an asynchronous communication method that executes the called function module just once in the RFC server. The remote system need not be available at the time when the RFC client program is executing a tRFC.
The tRFC component stores the
called RFC function, together with the corresponding data, in the SAP database under
a unique transaction ID (TID).
If a call is sent, and the
receiving system is down, the call remains in the local queue. The calling
dialog program can proceed without waiting to see whether the remote call was
successful. If the receiving system does not become active within a certain
amount of time, the call is scheduled to run in batch.
tRFC is always used if a
function is executed as a Logical Unit
of Work (LUW). Within a LUW, all calls
Ø are executed in the order in which they are called
Ø are executed in the same program context in the
target system
Ø run as a single transaction:
they are either committed or rolled back as a unit.
Implementation of tRFC is
recommended if you want to maintain the transactional sequence of the calls.
Disadvantages of tRFC
tRFC processes all Logical
Unit of Work (LUWs) independently of
one another. Due to the amount of activated tRFC processes, this procedure can
reduce performance significantly in both the send and the target systems.
In addition, the sequence of Logical
Unit of Work (LUWs) defined in the
application cannot be kept. It is therefore impossible to guarantee that the
transactions will be executed in the sequence dictated by the application. The
only thing that can be guaranteed is that all Logical Unit of Work (LUWs) are transferred sooner or later.
04. Queued RFC (qRFC) : To guarantee that multiple Logical Unit of Work (LUWs) are processed in the order specified by the application, tRFC can be serialized using queues (inbound and outbound queues). This type of RFC is called queued RFC (qRFC).
qRFC is therefore an extension
of tRFC. It transfers an Logical Unit of Work
(LUW) (transaction) only if it has no predecessors (based on the
sequence defined in different application programs) in the participating
queues.
Implementation
of qRFC is recommended if you want to
guarantee that several
transactions are processed in a
predefined order.
Data transfer
All RFC types are transferred
by means of CPI-C or TCP/IP. They represent a
kind of Gateway Communication.