gpt4 book ai didi

c# - RFC_READ_TABLE 查询大量列后抛出 Rfcabapexception

转载 作者:行者123 更新时间:2023-12-02 17:46:25 24 4
gpt4 key购买 nike

在我工作的地方,我们有两个使用 SAP 的系统,一个使用 Delphi,另一个使用 C#。我正在实现 c# 并且两者都有相同的问题,当我使用 RFC_READ_TABLE 查询大量列时,根据表(通常为 60+),它返回一个没有描述的 Rfcabapexception 和没有内部异常,只是一个标题。是什么导致了这个异常,我该怎么做才能阻止它?

最佳答案

功能模块 RFC_READ_TABLE 必须将数据转换为通用格式,因为像 DATASTANDARD TABLE 这样的“真正的通用类型”不是支持 RFC 通信。因此,outout 以一系列表格行的形式传输,每个表格行的长度最多为 512 个字符。

enter image description here

这有几个后果:

  • 如果您请求的所有字段的总大小超过 512 个字符,您将得到一个短转储(检查事务 ST22)和您提到的异常。
  • 如果您尝试读取无法转换为字符字段和/或热具有固定长度 (!) 字符表示的字段,就会发生不好的事情。最有可能的是,RFC_READ_TABLE 要么中止一个简短的转储,要么 barf 整个输出数据。

您可以通过垂直切片表并按顺序读取列组来绕过第一个问题。请注意,当再次将结果拼接在一起时,RFC_READ_TABLE 不能保证始终以相同的顺序返回数据。另请注意,您可能会违反事务隔离,这取决于您读取的数据更改的频率。

关于c# - RFC_READ_TABLE 查询大量列后抛出 Rfcabapexception,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14125727/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com