ABAP Keyword Documentation → ABAP − Reference → Data Interfaces and Communication Interfaces → RFC - Remote Function Call → RFC Overview
RFC Restrictions
In contrast to the normal function module call, the following restrictions apply to an RFC:
- Pass-by value must
be selected for the
IMPORTING
,EXPORTING
, andCHANGING
parameters of a remote-enabled function module. This cannot be specified explicitly forTABLES
parameters, but are used implicitly for RFC.
- The formal parameter of a remote-enabled function module must be typed using data types from ABAP Dictionary or using built-in ABAP types. Data types from type groups cannot be specified.
- No reference variables can be passed in RFCs. The formal parameters of a remote-enabled function module cannot, therefore, be typed using a reference type.
- A database commit is performed in every call that uses synchronous and asynchronous RFC. For this reason, synchronous or asynchronous RFC must not be used between ABAP SQL statements that open or close a database cursor. An exception to this are updates. When updates are running, sRFC and aRFC do not cause work processes to be switched or database commits to be executed.
- In a remotely called function module, no statements can be called that close the current
RFC session and hence the
connection. An example of this is the statement
LEAVE PROGRAM
, orSUBMIT
without the additionRETURN
.
- As only pass by value is used for the RFC, when exceptions do occur, you can never access interim
results when a synchronous RFC is made.
TABLES
parameters are an exception to this. When the exception SYSTEM_FAILURE is raised, these parameters behave in the same way as when the function module is executed locally, in which case they are passed by reference. The data held by a parameter of this type before the exception is passed to the client.
- When passing character-like data, there is usually a conversion between the participating code pages. When data is passed between MDMP systems and Unicode systems, the mapping might not be unique. For structures defined in ABAP Dictionary, the text language is evaluated when the binary RFC protocol is used.
- Information messages and warnings are handled like status messages.
- In background RFC calls (bgRFC and the obsolete
tRFC and
qRFC), the statements
COMMIT WORK
andROLLBACK WORK
must not be executed within a Unit/LUW. In addition, no implicit database commit can be triggered there.