Remote Function Call (RFC) in SAP Tutorial

What is RFC?

RFC is a mechanism that allows business applications to communicate and exchange information (in pre-defined formats) with other systems. RFC stands for 'Remote Function Call'

RFC consists of two interfaces:

  1. A calling interface for ABAP Programs
  2. A calling interface for Non-SAP programs.

Any ABAP program can call a remote function using the CALL FUNCTION...DESTINATION statement. The DESTINATION parameter tells the SAP System that the called function runs in a system other than the callers.
Syntax-

CALL FUNCTION 'remotefunction'

DESTINATION dest

EXPORTING f1 =

IMPORTING f2 =

TABLES t1 =

EXCEPTIONS

Logical Destinations are defined via transaction SM59 and stored in Table RFCDES

Functions of the RFC interface

  RFC is a SAP protocol to handle communications between systems to simplify the related programming. It is the process of calling a function module which is residing on a different machine from the caller program. RFCs can be used to call a different program on the same machine as well, but usually, it is used when 'calling' and 'called' function modules/ programs are running on separate machines.
 

The Source System resource does not wait for the target system as they deliver the message/data without waiting for any acknowledgment. It is not reliable for communication since data may be lost if the target system is not available. Used for -

Transactional

 It is a special form of aRFC. Transactional RFC ensures transaction-like handling of processing steps that were originally autonomous.

Transactional RFC is an asynchronous communication method that executes the called function module in the RFC server only once, even if the data is sent multiple times due to some network issue. 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). tRFC is similar to aRFC as it does not wait at the target system (Similar to a registered post). 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). Used For-

Queued

 
Queued RFC is an extension of tRFC. It also ensures that individual steps are processed in sequence.

To guarantee that multiple LUWs (Logical Unit of Work/ Transaction) are processed in the order specified by the application. tRFC can be serialized using queues (inbound and outbound queues). Hence the name queued RFC (qRFC). Used For-


Types of RFC Connections


Remote Function Call (RFC) in SAP Tutorial

2.Write the code for the function module.

Remote Function Call (RFC) in SAP Tutorial

3.Define the destination of the RFC server in the RFC client system that calls the remote function ( via SM59 transaction).

Remote Function Call (RFC) in SAP Tutorial

4.Declaring Parameters: All parameter fields for a remote function module must be defined as reference fields, that is, like ABAP Dictionary fields.
5.Exceptions: The system raises COMMUNICATION_FAILURE and SYSTEM_FAILURE internally. You can raise exceptions in a remote function just as you would in a locally called function.
 

Debugging Remote Function Calls

 

YOU MIGHT LIKE: