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

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

在企業整合企業對企業 (B2B) 案例中,您可能需要在格式之間轉換 XML。 邏輯應用程式工作流程可以使用轉換 XML 動作和預先定義的對應來轉換 XML

例如,假設您經常從使用 YearMonthDay 日期格式 (YYYYMMDD) 的客戶收到 B2B 訂單或發票。 不過,您的組織使用 MonthDayYear 日期格式 (MMDDYYYY)。 您可以在儲存客戶活動資料庫中的訂單或發票詳細數據之前,先建立並使用將 YearMonthDay 格式轉換成 MonthDayYear 格式的對應。

必要條件

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

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

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

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

    • 存在於您打算使用 轉換 XML 動作的邏輯應用程式資源所在的相同位置或 Azure 區域。

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

    • 如果您正在處理 標準邏輯應用程式資源和工作流程,您可以根據下列案例,將整合帳戶連結至邏輯應用程式資源、直接上傳對應至邏輯應用程式資源,或兩者:

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

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

新增轉換 XML 動作

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

  2. 如果您有沒有觸發程式的空白工作流程, 請遵循下列一般步驟來新增您想要的任何觸發程式。 否則,請繼續下一個步驟。

    此範例會使用 要求 觸發程式。

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

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

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

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

      Screenshot shows Standard workflow with opened dynamic content list.

      此範例會 從觸發程式選取 Body 令牌。

      注意

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

  5. 從 [ 對應來源] 列表中,選取您上傳地圖的位置,也就是 您的LogicApp 資源或 IntegrationAccount

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

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

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

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

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

進階功能

參考元件,或從地圖呼叫自定義程序代碼

轉換 XML 動作支援從對應參考外部元件,這可讓您直接從 XSLT 對應呼叫自定義 .NET 程式代碼。 如需詳細資訊,請參閱 在 Azure Logic Apps 中新增工作流程的 XSLT 對應。

參考擴充物件

在標準工作流程中 ,轉換 XML 動作支援指定要與對應搭配使用的 XML 延伸模組物件。

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

  2. 在 [XML 擴充物件] 方塊中,指定您的擴充物件,例如:

    Screenshot shows Transform XML action with XML Extension Object parameter and value.

位元組順序符號

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

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

下一步