abap - 通过 RFC 返回动态类型的表行?
问题描述
我需要通过 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 中获取元数据。
推荐阅读
- gradle - Gradle 将编译后的 jar 移动到指定文件夹
- javascript - 'Document' 上的 'querySelector' 不是有效的选择器错误,即使 div 的 id 看起来不错
- python-3.x - python中的dateparser返回意外结果
- r - 使用元函数迭代许多值
- javascript - Firestore 限制当前时间读取快照
- git - 在 vscode 中的 git 中暂存文件,然后更改已取消
- xml - 为上下文项构建源时出错。org.xml.sax.SAXParseException;行号:1;列号:57;序言中不能有内容
- python - Azure Functions 中的凭据,传递一个凭据或根据需要调用?
- flutter - 如何对齐文本?
- sql - 更新语句,更新值是有条件评估的