调用 RFC_READ_TABLE 时出现 DATA_BUFFER_EXCEEDED 错误?

2023-11-21

我的 java/groovy 程序从用户输入接收表名和表字段,它查询 SAP 中的表并返回其内容。

用户输入可能涉及表CDPOS and CDHDR。在阅读 SAP 文档和谷歌搜索后,我发现这些是存储更改文档日志的表。但我没有找到任何可以在java中使用远程调用函数来执行此类查询。

然后我使用了已弃用的 RFC 功能模块RFC_READ_TABLE并尝试仅根据此 RFC 构建自定义查询。然而,我发现如果我传递给这个 RFC 的所需字段的数量超过 2,我总是得到DATA_BUFFER_EXCEEDED即使我限制最大行数也会出错。

我没有被授权成为SAP系统中的ABAP开发人员,无法在现有系统中添加任何FM,所以我只能用JAVA编写代码来完成这个需求。

难道我做错了什么?你能给我一些关于这个问题的提示吗?


DATA_BUFFER_EXCEEDED仅当您要读取的字段的总宽度超过width of the DATA参数,可能因 SAP 版本而异 - 当前系统为 512 个字符。和数量无关rows,而是单个数据集的大小。

那么问题来了:该文件的内容是什么?FIELDS范围?如果为空,则意味着“读取所有字段”。CDHDR宽度为 192 个字符,所以我认为问题是CDPOS宽度为 774 个字符。主要问题是字段VALUE_OLD and VALUE_NEW,均为 245 个字符。

即使您没有获得开发人员访问权限,您也应该敦促某人获得只读字典访问权限,以便能够详细检查结构。

无耻插件:RCER包含一个包装类RFC_READ_TABLE它负责字段处理并确保所选字段的总宽度低于功能模块施加的限制。

另请注意,这些表在生产环境中可能会很大 - 想想数十亿个条目。通过对这些表执行过多的读取操作,您可以轻松地使数据库陷入瘫痪。

PS: RFC_READ_TABLE根据 SAP 说明,未发布供客户使用382318,以及注释758278建议创建自己的功能模块并提供具有改进逻辑的模板。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

调用 RFC_READ_TABLE 时出现 DATA_BUFFER_EXCEEDED 错误? 的相关文章

  • 创建计划行确认数量为0的销售订单

    需求 通过BAPI函数创建销售订单 并且计划行里的确认的数量为0 解决方法 使用BAPI BAPI SALESORDER CREATEFROMDAT2创建SO后 再使用函数 SD BACKORDER UPDATE 对确认的数量进行修改 ti
  • 使用 ABAP 7.40+ 语法进行最有效的 itab 过滤

    在 7 40 版本中 我们有很多方法来过滤内部表数据 例如 可以使用这样的 ABAP 结构 FILTER操作员 DATA lt extract FILTER lt bseg USING KEY matnr bwtar WHERE matnr
  • ALV 中颜色、强调、下划线的样式

    我们正在尝试操作 alv 网格类来获得像 Sap Agenda SSC1 tcode 中那样的结果 即合并列和行 我们发现该类cl calendar control schedule用方法display处理这个问题 我们正在努力理解这个方法
  • 删除 ALV 中选定的行

    我有 ALV 表 并在表工具栏中创建了一个自定义按钮 每当按下按钮时 我想删除选定的行 现在只显示一条消息 以便我可以查看自定义按钮是否正常工作 METHOD on user command CASE e salv function WHE
  • 选择多个字段不在子查询中的位置(不包括连接)

    我需要提取存档表中没有历史记录的记录 需要在存档中检查 1 条记录的 2 个字段 从技术意义上讲 我的要求是左连接 其中右侧为 空 又名排除连接 在abap openSQL中通常是这样实现的 无论如何对于我的场景 Select from x
  • 将 ALV 输出网格中的复选框标记为选中

    我正在使用类创建 ALV 输出网格cl gui alv grid 使用 fieldcatalog 的相应记录将输出表的其中一列定义为复选框 ls fcat checkbox X ls fcat edit X 对于包含复选框的列的所有记录 它
  • 在ABAP中找到两个数据集的差异?

    我有一组值 foo bar blue 我有一个看起来像这样的表 ID my col 1 foo 2 bar 我想要设置值减去所有可用的 my col 值 foo bar blue 减去 foo bar 结果应该是 蓝色 在ABAP中如何做到
  • 并行模式下的 BAPI_GOODSMVT_CREATE 导致“物料 XXX 的工厂数据已锁定”错误

    目前 我们正在开发并行性的大规模 GI 发布 以显着减少工作时间 因为我们一天必须发布大约 300k 的 GI 项目 Problem 我知道 BAPI GOODSMVT CREATE 有一个限制 由于表锁 您不能同时发布相同的材料 所以我将
  • 列出通过 RFC 连接时允许的方法?

    我可以通过 SAP RFC 以用户 foo 和密码 bar 的身份从我的计算机连接到 SAP 服务器 是否可以通过 SAP RFC 进行自省 我想知道允许用户 foo 执行哪些方法 我正在使用 PyRFC 但据我所知 这对于这个问题来说应该
  • 如何在屏幕退出时隐藏有条件的自定义字段?

    我的任务是自定义标题详细信息屏幕ME33K交易 目标是添加一个包含新字段的框 仅当协议类型是我使用交易定义的类型时才应显示该框SPRO 例如 协议类型ABC 我开始使用CMOD交易中 我创建了一个虚拟框和带有一些硬编码输入值的字段 并且工作
  • 方法调用作为另一个方法调用的参数?

    我是abap OO 的新手 但之前用java开发过 并编写了一个abap cl caretaker 类 它应该处理数据库表及其本地副本 实习生表 上的操作 我想进行以下方法调用 caretaker gt show table caretak
  • 如何将大量代码复制到不同的公司

    我在一家公司的服务器上有一组 ZBAPI 结构 我们在该公司开发并安装了自定义应用程序 我必须在不同公司的同一应用程序中使用许多相同的 BAPI 是否有任何快速方法可以将结构 功能模块 业务对象和 BAPI 代码本身从一个 SAP 系统移动
  • 如何在仅引用数据的表中循环

    我正在使用功能模块RSAQ QUERY CALL 取回一张桌子 DATA gr data TYPE REF TO data CALL FUNCTION RSAQ QUERY CALL EXPORTING query ZXXXXXXXX us
  • 缓慢选择所有条目

    下面的 SELECT 与内部表一起运行GIT KUNNR TAB包含 2 291 000 条具有唯一客户 kunnr 的行 需要 16 分钟才能完成 select kunnr umsks umskz gjahr belnr buzei bs
  • ABAP中调用方法的不同方式

    抱歉这个基本的 ABAP 问题 ABAP中调用方法有哪些不同的方式 他们的 官方 名字是什么 我听说过执行 方法调用和内部 内联方法调用 执行使用PERFORM关键字和方法调用CALL METHOD语法 我猜 但什么是 内部 或 内联方法调
  • 从 Fiori 列表报告导航到标准应用程序(例如热点)?

    我已经根据之前创建的 CDS 视图创建了列表报告 Fiori 应用程序 是否有可能在现有和 或附加 CDS 视图中使用一些注释来创建供应商编号上的热点智能字段 IE 当我点击它时 它会将我导航到该供应商的标准 业务合作伙伴 应用程序 如果这
  • 反序列化匿名 JSON 数组?

    我有一个想要反序列化的匿名数组 这里是第一个数组对象的示例 time 08 55 54 date 2016 05 27 timestamp 1464332154807 level 3 message registerResourcePath
  • 7.02之前的ABAP中如何编码JSON

    正如霍斯特 凯勒在他的著作中提到的ABAP 和 JSON http scn sap com people horst keller blog 2013 01 07 abap and json帖子 ABAP 原生支持 7 02 和 7 03
  • 调用 HTTP_POST 时出现 Bad Request 错误?

    我有一个关于 SAP 功能模块 http post 的问题 我只想将 SAP 中的一条短消息 msg 发布到我之前安装的推送通知服务器 pushd Github Projekt 现在我不知道如何传递消息 我用测试符号测试了 FM CALL
  • 使用 SAX 进行 XML 解析 |如何处理特殊字符?

    我们有一个 JAVA 应用程序 可以从 SAP 系统中提取数据 解析数据并呈现给用户 使用 SAP JCo 连接器提取数据 最近我们抛出了一个异常 org xml sax SAXParseException 字符引用 是无效的 XML 字符

随机推荐