ABAP Keyword Documentation →  ABAP − Release-Specific Changes →  Changes in Release 3.0 → 

RFC - Remote Function Call in Release 3.0


1. Transactional RFC


2. Asynchronous RFC


3. Authorization Checks when Accessing Function Groups Using RFC

Modification 1

Transactional RFC


CALL FUNCTION... DESTINATION ... can now also be called using the adddition IN BACKGROUND TASK. The calls are collected and executed as a logical unit of work (LUW) on the target host (destination) at the next COMMIT WORK. The current program does not wait for the function modules to finish processing.

Modification 2

Asynchronous RFC


Normal remote function calls (calls using CALL FUNCTION .... DESTINATION ...) only enable an ABAP program to communicate with ABAP programs running in the background. This means that a program called in this way cannot interact with the user.
The calling program can be a dialog program and display a screen. However, the screen remains inactive during communication.
The following call starts an ABAP function module in a new session for parallel processing:
CALL FUNCTION... STARTING NEW TASK ...

The addition DESTINATION IN GROUP ... allows automatic load balancing within a group of application servers.

The addition DESTINATION dest enables parallel processing in a remote system.

Unlike in a normal function module call, the caller carries on processing immediately as soon as the function module (either local or remote) has been started (asynchronous call).
The called function module can now, for example, use CALL SCREEN ... to display a screen and interact with the user.

The WAIT UNTIL condition [UP TO n SECONDS] command allows you to wait for a function module (called asynchronously) to finish. This requires the addition PERFORMING form ON END OF TASK. WAIT must occur in the same program context (session).

Modification 3

Authorization checks when accessing function groups using RFC
If the profile parameter auth/rfc_authority_check = 1 is set, the system checks authorization
against authorization object S_RFC for the function group before calling the function.