abap - 通过 RFC 返回动态类型的表行?

标签 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).

如何连接 <lt_result>结果到一个列表/表格并通过 RFC 返回?

当然,所有表都可以具有不同的结构。创建一个包含所有行的大表并没有帮助。

最佳答案

您不能在 RFC 中返回任意结构,它们必须是预定义的。

我能想到的最好方法是模仿 SAP 在数据库中处理 idocs 的方式。您的表至少需要两个字段,第一个字段是一个描述符字段,告诉调用者表结构是什么,第二个字段是一个非常长的字符类型字段,所有数据都连接在一起,固定宽度或定界。这样,您就可以在同一返回结构中传递来自多个表的数据。

如果您的调用程序确实对 SAP 数据集一无所知,您可能还需要从表 DD02l 中获取元数据。

关于abap - 通过 RFC 返回动态类型的表行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55419056/

相关文章:

dynamic - 使用动态键字段读取表?

abap - 我应该如何开始学习SAP?

java - 通过 JCo 以事务方式调用 BAPI RFC

在 Select LIKE 中使用通配符 % 时的性能

design-patterns - 如何设计带有非面向对象部分的 UML 类图?

loops - 嵌套循环条件

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

php - SAP 连接错误

选择带有偏移量的语句?

abap - 如果找不到行,则使用第二个条件