繁体   English   中英

SAP 表结构通过 XML 继续通过表

[英]SAP table structure to proceed passing by table by XML

我在 Azure 中创建了逻辑应用程序,其中包含一些 json 数据。 我想连接到 SAP 系统并通过 RFC 将参数传递给 ABAP Function 模块。
XML中的RFC输入参数:

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

ABAP FM 定义:

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

ABAP结构: 在此处输入图像描述 ABAP 表类型: 在此处输入图像描述 错误:

{
  "error": {
    "code": "GeneralBadRequest",
    "message": "Failed to process request. Error details: 'Under expected node type 'Text' for element '' with local name '', expected row start element with local name 'ZRFC_TT_INVOICE_ITEMS' or 'ZRFC_ST_INVOICE_ITEMS' with namespace '', or end element from parent node.'.",
    "target": ""
  }
}

根据这个错误,我只需要将ITEMS类型更改为STRING,它就会工作,但我不想制作后处理字符串并在abap FM中创建一个数组。

我需要在 ABAP 中创建一个可以处理这些数据的结构和表类型。 有人知道我该如何处理吗?

提前致谢。

问题是您的 ITEMS 元素是一个表,并且 XML 架构预计 XML 行元素将跟随。 但是你有 JSON 文本。

使用逻辑应用操作生成架构为您的客户 RFC 获取 XML 架构。

请参阅位于https://docs.microsoft.com/azure/logic-apps/logic-apps-using-sap-connector#xml-samples-for-rfc-requests的公共文档中的表 RFC XML 示例

尤其是:

<STFC_WRITE_TO_TCPIC xmlns="http://Microsoft.LobServices.Sap/2007/03/Rfc/">
   <RESTART_QNAME>exampleQName</RESTART_QNAME>
   <TCPICDAT>
      <ABAPTEXT xmlns="http://Microsoft.LobServices.Sap/2007/03/Rfc/">
         <LINE>exampleFieldInput1</LINE>
      <ABAPTEXT xmlns="http://Microsoft.LobServices.Sap/2007/03/Rfc/">
         <LINE>exampleFieldInput2</LINE>
      <ABAPTEXT xmlns="http://Microsoft.LobServices.Sap/2007/03/Rfc/">
         <LINE>exampleFieldInput3</LINE>
      </ABAPTEXT>
   </TCPICDAT>
</STFC_WRITE_TO_TCPIC>

TCPICDAT 是表元素。 ABAPTEXT 是行元素的示例。 LINE 是行内字段元素的示例。

根据您的屏幕截图,您的行类型是 ZRFC_ST_INVOICE_ITEMS 因此必须命名为行元素。 AMOUNT 和 DESCRIPTION 似乎是您的字段。

所以你的 XML 需要看起来像:

<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/>

最后,您还可以在将负载发送到 SAP 操作之前使用 XML 验证操作,因此您可以检查您的 XML 负载是否符合特定 RFC 的 XML 架构

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM