RFC is a SAP protocol that handle communications and exchange information between systems. RFCs can be used to call a different program in the same machine or calling a function module which is residing in a different machine from the caller program
Type of RFC:
1) Synchronous (sRFC): Requires both the systems (client and server) to be available at the time of communication or data transfer means communication between systems where acknowledgements
2) Asynchronous (aRFC): Communication between systems where acknowledgements are not required and doesn't require both the systems to be available at the time of execution and the result is not immediately required to be sent back to calling system
3) Transactional (tRFC): Special form of aRFC where it executes the called function module in the RFC server only once, even if the data is sent multiple times due to networking issue. Similar to aRFC as it doesn't wait for the target system. If the system is not available, it will write the Data into aRFC Tables with a transaction ID (SM58) which is picked by the scheduler RSARFCSE (which runs for every 60 seconds)
4) Queue (qRFC): Extension of tRFC that ensures individual steps are processed in sequence
Sample of RFC between SAP system
1) Execute TCODE: SM59
2) Double click one of the connections
3) Click the "Connection Test" button
4) The test connection results