启用RFC的功能模块中键值列表的数据结构?

Data structure for key-value list in RFC-enabled function module?

我正在 ABAP 中编写一个新的 RFC 可调用函数,它应该能够导入键值映射列表。

RFC 调用应用程序将使用 Python 和 PyRFC 库。

我不确定是否应该创建一个新的自定义数据结构,是否可以重新使用现有的数据结构。

导入参数应该能够包含以下列表:

('key1', ['key1val1', 'key1val2', ...])
('key2', ['key2val1', 'key2val2', ...])
....

如果可能,我想重新使用现有的数据结构。

一个丑陋的技巧是像这样设计 API:使用一个字符串并解析为 json。但这是我想避免的解决方法。

我找到了数据结构 WDY_KEY_VALUE 但那里的值是一个字符串。我需要一个值是字符串列表的结构。

在 ABAP DDIC 中完全可以对此类数据进行建模:

  1. 创建 table 类型 z_t_values 并在类型 string

  2. 中构建行
  3. 使用字段 key type stringvalues type z_t_values

  4. 创建结构类型 z_s_key_values
  5. 创建 table 类型 z_t_key_values 行类型 z_s_key_values

现在,类型 z_t_key_values 对应于您的示例输入:它是一个 table 行,每行包含一个键和一个 table 值

您可以创建一个深层结构,其中 KEY 定义为 STRING 类型,VALUE 定义为类型 STRINGTAB