⟩ What is the difference between transactional rfc and regular rfc?
There are mainly 4 types of RFC communication in SAP. They are
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.
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
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.
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.