You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure Logic App调用SAP RFC传表参数报错如何调整ABAP结构

报错原因

你当前的RFC请求中,ITEMS节点传入的是JSON格式的纯文本内容,但SAP LOB适配器识别到ABAP FM中ITEMS参数为表类型时,会期望该节点下是对应行结构的XML嵌套节点,而非纯文本,因此抛出找不到对应行结构节点的错误。

方案1:调整Logic App请求格式(无需ABAP端解析)

你已创建的ABAP结构和表类型本身是符合要求的,不需要修改,仅需要调整Azure侧传入的XML参数格式,将JSON文本替换为SAP适配器要求的嵌套XML结构即可,调整后的请求示例如下:

<?xml version="1.0" encoding="utf-8"?>
<ZFM_MGR_RFC xmlns="http://Microsoft.LobServices.Sap/2007/03/Rfc/">
  <INVOICE_ID>WZ</INVOICE_ID>
  <ITEMS>
    <ZRFC_ST_INVOICE_ITEMS xmlns="http://Microsoft.LobServices.Sap/2007/03/Types/Rfc/">
      <AMOUNT>28 511,40</AMOUNT>
      <DESCRIPTION>Podstawowy podatek VAT 23%</DESCRIPTION>
    </ZRFC_ST_INVOICE_ITEMS>
    <ZRFC_ST_INVOICE_ITEMS xmlns="http://Microsoft.LobServices.Sap/2007/03/Types/Rfc/">
      <AMOUNT>6 145,20</AMOUNT>
      <DESCRIPTION>Podatek VAT 8%</DESCRIPTION>
    </ZRFC_ST_INVOICE_ITEMS>
  </ITEMS>
</ZFM_MGR_RFC>

调整后ABAP FM的ITEMS参数会直接接收到结构化内表数据,不需要做任何额外解析处理。

方案2:ABAP端轻量适配(无需修改Logic App逻辑)

如果你不想调整Azure侧的传参格式,可以将ITEMS参数类型保留为STRING,直接调用ABAP标准JSON解析类完成转换,不需要手动写字符串解析逻辑,示例代码如下:

FUNCTION ZFM_MGR_RFC
  IMPORTING
    VALUE(INVOICE_ID) TYPE STRING OPTIONAL
    VALUE(ITEMS) TYPE STRING OPTIONAL.

DATA: lt_invoice_items TYPE ZRFC_TT_INVOICE_ITEMS.

" 一行代码完成JSON字符串到内表的转换
/ui2/cl_json=>deserialize(
  EXPORTING
    json = items
    pretty_name = /ui2/cl_json=>pretty_mode-camel_case
  CHANGING
    data = lt_invoice_items
).

" 后续直接使用lt_invoice_items内表即可
ENDFUNCTION.

内容的提问来源于stack exchange,提问作者TyRRRax

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.12 15:24:04