簡體   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