在查询 BAPI 时,我们通常只对表的几列感兴趣。
例如 PO_ITEMS 表(在 BAPI_PO_GETITEMS 下)有 58 列。在查询时,我只对其中的 10 个列感兴趣。但是 BAPI 响应包含所有列,这是一个开销。
在 SQL 世界中,我们始终可以选择要检索的列。查询响应仅包含那些列,而不是所有列。
我记得我在某处读过我们可以禁用不需要的列作为响应。但是当我现在需要它时,我无法找到有关它的信息。
任何人都可以分享一个代码片段来实现这一点吗?或者特定的在线资源/指针会有所帮助?
谢谢
根据您用于调用 BAPI 的技术,您有时可以限制传输哪些参数。例如,如果您使用 SAP Java 连接器(JCo 3),您可以使用setActive参数的方法来限制是否传递参数。然而:
TABLES参数或其他参数。您不能启用或禁用单个列。有时还有其他参数允许您选择性地启用或禁用字段,但这是实际 BAPI 实现的一部分,而不是一些无所不在的基本技术。
这不是您问题的确切答案。我希望它会有所帮助。我认为我们无法从功能模块表中选择特定数量的列。但是我们可以从该表中访问特定行,就像从 java 端传递强制值一样。 ....就像我为功能模块(不是表)做的这个示例代码。
JCoDestination 目的地 = JCoDestinationManager.getDestination(DESTINATION_NAME);
JCoFunction jf=destination.getRepository().getFunction("ZUSER_DET");
jf.getImportParameterList().setValue("FIRST_NAME","username");
jf.execute(destination);
String jfex=jf.getExportParameterList().getString("返回表中的一些列名");
System.out.println(jfex);
它将返回一行表值。您可以随意操作