使用 Azure Logic Apps 轉換工作流程中的 XML

適用於:Azure Logic Apps (使用量 + 標準)

在企業整合商業對商業(B2B)情境中,您可能必須在不同格式間轉換 XML。 您的邏輯應用程式工作流程可以使用 [轉換 XML] 操作及預先定義的 映射來轉換 XML。

例如,假設您定期收到來自使用 YearMonthDay 日期格式 (YYYYMMDD) 的客戶的 B2B 訂單或發票。 不過,您的組織會使用 MonthDayYear 日期格式 (MMDDYYYY)。 您可以建立並使用將 YearMonthDay 格式轉換為 MonthDayYear 格式的地圖,然後再將訂單或發票詳細資訊儲存在客戶活動資料庫中。

先決條件

  • Azure 帳戶和訂閱。 如果您還沒有訂閱,則請 註冊免費的 Azure 帳戶。

  • 邏輯應用程式工作流程已透過觸發程序啟動,以便您可以在工作流程中,視需要新增轉換 XML 動作。

  • 您在其中定義和儲存成品的整合帳戶資源 (例如交易夥伴、合約、憑證等),以用於企業整合和 B2B 工作流程。 此資源必須符合下列需求:

    • 與邏輯應用程式資源相同的 Azure 訂閱相關。

    • 存在於與您計劃使用 Transform XML 動作的邏輯應用程式資源相同的位置或 Azure 區域中。

    • 如果您正在處理取用邏輯應用程式資源和工作流程,則您的整合帳戶需要下列項目:

    • 如果您正在處理標準邏輯應用程式資源和工作流程,您可以根據下列情境,將整合帳戶連結至邏輯應用程式資源、直接上傳映射至邏輯應用程式資源,或同時執行這兩者。

      • 如果您已經有整合帳戶,其中包含您需要或想要使用的成品,您可以將整合帳戶連結至您想要使用成品的多個標準邏輯應用程式資源。 如此一來,您就不需要將地圖上傳至每個個別的邏輯應用程式。 如需詳細資訊,請檢閱 將邏輯應用程式資源連結至整合帳戶。

      • 如果您沒有整合帳戶,或只打算在相同邏輯應用程式資源內的多個工作流程中使用成品,則可使用 Azure 入口網站或 Visual Studio Code 直接將對應新增至邏輯應用程式資源。

        備註

        Liquid 內建連接器可讓您選取您先前上傳至邏輯應用程式資源或連結整合帳戶的對應,但無法同時選取兩者。

      因此,如果您沒有或不需要整合帳戶,可以使用上傳選項。 否則,您可以使用連結選項。 不管怎樣,您都可以在相同邏輯應用程式資源的所有子工作流程中使用這些成品。

    您仍然需要整合帳戶來儲存其他成品 (例如合作夥伴、合約和憑證),以及使用 AS2、X12 和 EDIFACT 作業。

新增轉換 XML 動作

  1. 在 Azure 入口網站中,於設計工具中開啟您的標準邏輯應用程式和工作流程。

  2. 如果您的工作流程沒有觸發程序,請 按照以下一般步驟新增您想要的任何觸發程序。 否則,請繼續下一個步驟。

    此範例使用 請求 觸發器。

  3. 在工作流程中您要新增 [轉換 XML] 動作的步驟下,請遵循下列一般步驟來新增名為 [轉換 XML] 的動作。

  4. 在 [內容 ] 方塊中,指定您要使用您在 HTTP 要求中收到的任何 XML 資料來轉換的 XML 內容。

    1. 若要選取工作流程中先前作業的輸出,請在「 轉換 XML 」動作中,按一下「 內容 」方塊內,然後選取動態內容清單選項(閃電圖示)。

    2. 從動態內容清單中,選取您要轉換之內容的記號。

      螢幕擷取畫面顯示已開啟動態內容清單的標準工作流程。

      此範例從觸發程序選取主體語彙基元。

      備註

      請務必選取 XML 內容。 如果內容不是 XML 或 base64 編碼,您必須指定處理內容的運算式。 例如,您可以使用 運算式函式,例如 base64ToBinary() 解碼內容或 xml() 將內容處理為 XML。

  5. 從 [ 地圖來源 ] 清單中,選取您上傳地圖的位置,即 您的 LogicApp 資源或 IntegrationAccount。

  6. 從 地圖 清單中,選取您的地圖。

  7. 完成後,請儲存您的工作流程。

    您現在已完成設定 [轉換 XML ] 動作。 在實際應用程式中,您可能想要將轉換後的資料儲存在企業營運 (LOB) 應用程式中,例如 SalesForce。 若要將轉換後的輸出傳送至 Salesforce,請新增 Salesforce 動作。

  8. 若要測試您的轉換動作,請觸發並執行您的工作流程。 例如,對於要求觸發程序,將要求傳送至觸發程序的端點 URL。

    轉換 XML 動作會在觸發工作流程後,以及當 XML 內容可用於轉換時執行。

進階功能

參考組件,或從對應呼叫自訂程式碼

Transform XML 動作支援從映射中參照外部程序集,這些映射允許直接從 XSLT 中呼叫自訂 .NET 程式碼。 如需詳細資訊,請參閱 在 Azure Logic Apps 中新增工作流程的 XSLT 對應。

參考擴充模組物件

在標準工作流程中,「 轉換 XML 」動作支援指定要與地圖搭配使用的 XML 延伸物件。

  1. 在 [轉換 XML ] 動作中,開啟 [進階參數 ] 清單,然後選取 [XML 延伸模組物件],這會將參數新增至動作。

  2. 在 XML 延伸物件 方塊中,指定您的延伸物件,例如:

    螢幕擷取畫面顯示具有 [XML 延伸模組物件] 參數和值的 [轉換 XML] 動作。

位元組順序標記

依預設,轉換的回應會以位元組順序標記 (BOM) 開頭。 只有在程式碼檢視編輯器中工作時,才能存取此功能。 若要停用此功能,請將 transformOptions 屬性設定為 disableByteOrderMark:

"Transform_XML": {
    "inputs": {
        "content": "@{triggerBody()}",
        "integrationAccount": {
            "map": {
                "name": "TestMap"
            }
        },
        "transformOptions": "disableByteOrderMark"
    },
    "runAfter": {},
    "type": "Xslt"
}

後續步驟