在我工作的地方,我们有两个使用SAP的系统,一个使用Delphi,另一个使用c#。我正在实现c#并且两者都有相同的问题,当我使用RFC_READ_TABLE
查询大量列时,根据表(通常为60+),它返回一个没有描述且没有内部异常的Rfcabapexception ,只是一个标题。导致此异常的原因是什么,我该怎么做才能阻止它?
答案 0 :(得分:5)
功能模块RFC_READ_TABLE
必须将数据转换为通用格式,因为RFC通信不支持DATA
或STANDARD TABLE
等“真正的通用类型”。因此,outout作为一系列表格行传输,每个表格字段的长度最多为512个字符。
这有几个后果:
ST22
)和您提到的异常。RFC_READ_TABLE
将通过输出数据的短转储或barf中止。您可以通过垂直切片并按顺序读取列组来绕过第一个问题。请注意,在将结果重新拼接在一起时,RFC_READ_TABLE
无法保证始终以相同的顺序返回数据。另请注意,您可能会遇到违反事务隔离的情况,具体取决于您读取的数据更改的频率。