Abap 通过RFC返回动态类型的表行?
我需要通过RFC返回一些表的行,这些表的名称在执行之前是未知的 我有一个循环执行的语句:Abap 通过RFC返回动态类型的表行?,abap,saprfc,opensql,function-module,Abap,Saprfc,Opensql,Function Module,我需要通过RFC返回一些表的行,这些表的名称在执行之前是未知的 我有一个循环执行的语句: SELECT * up to iv_max_count rows into table <lt_result> FROM (iv_table_name) AS ltab WHERE (SQL_WHERE). 选择* 最多iv_max_计数行 入席 来自(iv_表_名称)作为ltab WHERE(SQL\u WHERE)。 如何将结果连接到一个列表/表格中,
SELECT *
up to iv_max_count rows
into table <lt_result>
FROM (iv_table_name) AS ltab
WHERE (SQL_WHERE).
选择*
最多iv_max_计数行
入席
来自(iv_表_名称)作为ltab
WHERE(SQL\u WHERE)。
如何将
结果连接到一个列表/表格中,并通过RFC返回
当然,所有表都可以有不同的结构。创建一个包含所有行的大表没有帮助。简而言之,ABAP和功能模块不是这样工作的 您必须准确定义输入和输出结构/表的外观。您可以返回一个包含多个深度嵌套表的结构,以便只有一个返回结构,但不能动态返回 让这一切充满活力会让事情变得更加复杂。大部分是不必要的 一种可能的方式:
RFC\u READ\u TABLE
在一个循环中动态读取多个单表而不进行连接听起来不像是ABAP编程,更像是“我需要第三方工具中的SAP数据”。您不能在RFC中返回任意结构,它们必须预定义 我能想到的最好的方法是模仿SAP处理数据库中IDoc的方式。您的表至少需要两个字段,第一个字段是一个描述符字段,告诉调用者表结构是什么,第二个字段是一个非常长的字符类型字段,所有数据连接在一起,可以是固定宽度的,也可以是分隔的。这样,您就可以在同一个返回结构中传递来自多个表的数据
如果您的调用程序真的对SAP数据集一无所知,您可能还需要从表DD02l中获取元数据。我是ABAP新手。如何定义包含多个表的变量?当然,循环中的每个表都可以有不同的结构。创建一个包含所有行的大表是无济于事的。你可以考虑编辑标题——你不是真的在寻找表的列表,你想把多个表传回,直到运行时才知道。@ BryChanin我更新了标题。它与现在的主题相符吗?我相信这更好地描述了您正在尝试做的事情,是的。为什么不简单地将行序列化为XML或JSON呢?@SandraRossi这就是我们目前正在做的事情。但我想二进制RFC比ascii(臃肿的)JSON更好。