【问题标题】:Limit number of records to be received from SAP using JCO library使用 JCO 库限制从 SAP 接收的记录数
【发布时间】:2023-03-24 02:07:01
【问题描述】:

假设其中一张 SAP 表中有 100 条记录,而我只想访问其中的 5 条。当我调用 BAPI 函数执行时,它会将所有 100 条记录带入内存,然后只有我可以对它们进行迭代。我想在执行 BAPI 函数之前将记录限制为 5。 我不能要求客户限制表本身的记录数,所以我使用 JCO lib 对其进行了编码。

【问题讨论】:

  • 分享代码怎么调用BAPI,什么BAPI

标签: java sap jco


【解决方案1】:

这样的功能必须在 BAPI 本身中实现。事实上,一些 BAPI 有一个 WHERE 子句,允许限制 BAPI 将返回的结果集。

但是“从外部”(即从 JCo 层)您不能影响 BAPI 将返回的结果。至少不是在如此精细的级别上:如果您调用返回数十个表的 BAPI(并花费大量时间从数据库),但您只对其中几个表感兴趣。然后您可以将其他表设置为“非活动”,后端的 RFC 层将只返回活动表的数据。 (如果 BAPI 以智能方式编程,它会预先确定哪些表是活动的,并为不活动的表跳过 SELECT 语句。)

这里有一些示例代码,它会停用名为“TABLE_NAME”的 BAPI 表:

JCoFunction myBapi = ...;
JCoParameterList tables = myBapi.getTableParameterList();
tables.setActive("TABLE_NAME", false);
// Now you can execute myBapi, and the backend system will not return 
// data for the table named TABLE_NAME.

【讨论】:

  • 非常感谢您的反馈。这意味着限制表的数量是可能的,但不限制表中的记录。谢谢。
  • 我添加了一些示例代码来展示如何禁用某个表。
  • 这是限制表格数据的一个很好的选择。感谢您的帮助..谢谢..
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-02-01
  • 2014-10-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多