RFC API data exchange is based on the request response model. During the request (this is the phase of RFC call) the name of the remote function module called will be serialized into an RFC buffer first. All available parameters (exporting, changing, tables) will be serialized in a second step.
During response (receive phase), all data received will be deserialized and converted into its local representation.
The serialization layer supports the following RFC protocols:
Classic RFC protocol.
In this case the classic RFC format will be used for serialization of elementary and complex data types.
New RFC protocol.
In this version RFC data will generally be serialized using the basXML format.
Note
You can use the same API calls to call remote function modules at the ABAP side regardless or which data serialization type you choose.
The RFC API supports all SAP single code pages and Unicode. Code page processing between the SAP system and the RFC API does not require any special treatment regardless of whether you use a single code page or Unicode. The code pages for the external RFC program always have to be converted to Unicode when using any single code page, regardless of whether it corresponds to an SAP single code page or not.
Note
This means that the RFC API always requires Unicode.
Data is compressed before sending, if both the client and the server system are capable of this. Otherwise, only the blank spaces at the end of a table line will be truncated.
The NW RFC API supports all elementary and complex ABAP data types. The following list shows the supported data types and their specifications:
ABAP Data Types Supported by the RFC API
ABAP type |
Typedef |
Length (in Bytes) |
Description |
---|---|---|---|
c |
RFC_CHAR[] |
1-65535 |
Characters, blank padded at the end |
n |
RFC_NUM |
1-65535 |
Digits, fixed size, leading '0' padded. |
x |
RFC_BYTE[] |
1-65535 |
Binary data |
p |
RFC_BCD[] |
1-16 |
BCD numbers (Binary Coded Decimals) |
i |
RFC_INT |
4 |
Integer |
b |
RFCTYPE_INT1 |
1 |
1-byte integer, not directly supported by ABAP |
s |
RFCTYPE_INT2 |
2 |
2-byte integer, not directly supported by ABAP |
f |
RFC_FLOAT |
8 |
Floating point |
d |
RFC_DATE |
8 |
Date ("YYYYMMDD") |
t |
RFC_TIME |
6 |
Time ("HHMMSS") |
decfloat16 |
RFC_DECF16 |
8 |
Decimal floating point 8 bytes (IEEE 754r) |
decfloat34 |
RFC_DECF34 |
16 |
Decimal floating point 16 bytes (IEEE 754r) |
g |
RFC_STRING |
Variable-length, zero terminated string |
|
y |
RFC_XSTRING |
Variable-length raw string, length in bytes |
During the execution of an RFC function, you can use the destination BACK to call another RFC function in the SAP client system or in the RFC client program (external program using RFC API) using the same RFC connection.