ARTICLE
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 , and CHANGING parameters of a
remote-enabled function module .
This cannot be specified explicitly for TABLES 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 predefined ABAP types. Data types from
type groups cannot be specified.
No reference variables can be
passed for an RFC. 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 Open 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, you cannot use statements that
close the current context and, in doing so, the
connection. An example of this is the statement LEAVE PROGRAM , or
SUBMIT without the addition RETURN .
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 transactional RFC calls (
bgRFC , tRFC , and qRFC ), the statements
COMMIT WORK and ROLLBACK WORK must
not be executed within a unit/LUW . In addition, no implicit
database commit can be triggered
there.
Documentation extract taken from SAP system, � Copyright SAP AG. All rights reserved