The function module RFC_READ_TABLE
has to convert the data to a generic format because "really generic types" like DATA
or STANDARD TABLE
are not supported for RFC communication. Because of this, the outout is transmitted as a series of table lines, each a character field up to 512 characters in length.
This has several consequences:
- If the total size of all fields you requested exceeds 512 characters, you will get a short dump (check with transaction
ST22
) and the exception you mentioned. - If you try to read fields that can not be converted to character fields and/or do hot have a fixed-length (!) character representation, bad things will happen. Most likely,
RFC_READ_TABLE
will either abort with a short dump or barf all over your output data.
You can bypass the first problem by slicing the table vertically and reading groups of columns sequentially. Be aware that RFC_READ_TABLE
is not guaranteed to always return the data in the same order when stitching the results back together again. Also be aware that you might run into violations of transaction isolation, depending on how often the data you read changes.