[英]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.
{
"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.