There are 4 types of RFC communication
in SAP
1.
Synchronous
RFC
2.
Asynchronous
RFC
3.
Transactional
RFC
4.
Queued
RFC
Synchronous RFC (sRFC) :
In this type of RFC communication, the calling program waits until the
requested processing step on the remote system has ended and then continues to
work locally.
In other words, both the systems
involved must be available at the time the call is made.
Used
for
- communication
between systems
- communication
between SAP Web Application Server to SAP GUI
Asynchronous RFC (aRFC) :
In this type of RFC communication, the
calling program gives the request to the remote system and immediately
continues to work locally.
The requested processing step is executed on the
remote system in isolation.
If the remote system cannot be reached
at the time of the call, the asynchronous calls of the RFC client are lost.
Used
for
- communication
between systems
- For
parallel processing
Transactional RFC (tRFC) :
This type of RFC communication is
similar to asynchronous RFC but by allocating a transaction id(TID) it guarantees that
if a request is sent several times because of network problems it is processed only once.
Unlike
asynchronous RFC, in Transactional RFC
the remote system does not have to be available at the moment the RFC client
program start the call.
The data is held in the source system until the target
system is available.
The report program RSARFCSE is called
in the background at regular intervals and tries to place the unsuccessful
requests, identified by their transaction id again.
Used
for
- Extension
of Asynchronous RFC
- For
secure communication between systems
Queued RFC (qRFC) :
This RFC communication is an extension
to the transactional RFC.
In this method, all the requests are queued
up(inbound queue and outbound queue) and are processed in a sequence only if it
is certain that all preceding calls are processed correctly.
This method
guarantees that all the requests are processed in the sequence in which they
are received.
This
type of RFCs will be used in SCM (APO) systems for CIF queues etc where
requests have to be processed in an order.
Used
for
- Extension of the
Transactional RFC (tRFC)
- For a defined
processing sequence
- Implementation
of qRFC is recommended if you want to guarantee that several transactions
are processed in a predefined order.