使用 Azure Logic Apps 在工作流程中新增轉換的對應

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

轉換 XMLLiquid工作流程動作需要對應來執行其工作。 例如, 轉換 XML 動作需要對應,才能在格式之間轉換 XML。 對應是 XML 檔,使用 可延伸樣式表單語言轉換 (XSLT) 語言來描述如何將數據從 XML 轉換成另一種格式,並具有 .xslt 擴展名。 對應包含來源 XML 架構作為輸入,以及目標 XML 架構做為輸出。 您可以定義基本轉換,例如將名稱和位址從某個檔複製到另一個檔。 或者,您可以使用現用的對應作業來建立更複雜的轉換。 您可以使用不同的內建函式來操作或控制數據,例如字串操作、條件指派、算術運算式、日期時間格式子,甚至是迴圈建構。

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

本指南說明如何為工作流程新增要使用的地圖。 您可以將對應新增至連結整合帳戶,或如果您有標準邏輯應用程式,您可以直接將對應新增至邏輯應用程式資源。

必要條件

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

  • 您要新增的對應。 若要建立地圖,您可以使用下列任何工具:

  • 根據您正在處理取用或標準邏輯應用程式工作流程,您將需要 整合帳戶資源。 當您想要定義並儲存成品以用於企業整合和 B2B 工作流程時,通常需要此資源。

    重要

    若要一起運作,您的整合帳戶和邏輯應用程式資源必須存在於相同的 Azure 訂用帳戶和 Azure 區域中。

    • 如果您正在處理取用邏輯應用程式工作流程,則需要 連結至邏輯應用程式資源的整合帳戶。

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

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

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

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

  • 取用和標準工作流程支持參考外部元件的 XSLT 對應,這可讓您直接從 XSLT 對應呼叫自定義 .NET 程式代碼。 若要支援這項功能,取用工作流程也有下列需求:

    • 您需要 64 位元件。 轉換服務會執行64位進程,因此不支援32位元件。 如果您有 32 位元件的原始程式碼,請將程式代碼重新編譯成 64 位元件。 如果您沒有原始程式碼,但從第三方提供者取得二進位檔,請從該提供者取得 64 位版本。 例如,某些廠商在同時具有32位和64位版本的套件中提供元件。 如果您有 選項,請改用64位版本。

    • 您必須依特定順序將元件和對應上傳至整合帳戶。 請務必先上傳元件,然後上傳參考元件的對應。

    • 如果您的元件或對應是 2 MB 或更小,您可以直接從 Azure 入口網站 新增元件並對應至您的整合帳戶

    • 如果您的元件大於 2 MB,但不大於 元件的大小限制,您將需要 Azure 儲存器帳戶和 Blob 容器,您可以在其中上傳元件。 稍後,您可以在將元件新增至整合帳戶時,提供該容器的位置。 針對這項工作,下表描述您需要的專案:

      項目 說明
      Azure 記憶體帳戶 在此帳戶中,為您的元件建立 Azure Blob 容器。 瞭解如何 建立記憶體帳戶
      Blob 容器 在此容器中,您可以上傳元件。 當您將元件新增至整合帳戶時,您也需要此容器的內容 URI 位置。 瞭解如何 建立 Blob 容器
      Azure 儲存體總管 此工具可協助您更輕鬆地管理記憶體帳戶和 Blob 容器。 若要使用 儲存體總管,請下載並安裝 Azure 儲存體 Explorer。 然後,遵循開始使用 儲存體總管 中的步驟,將 儲存體總管 連線到您的記憶體帳戶。 若要深入瞭解,請參閱快速入門:使用 Azure 儲存體 Explorer 在物件記憶體中建立 Blob。

      或者,在 Azure 入口網站 中,選取您的記憶體帳戶。 從記憶體帳戶功能表中,選取 [儲存體總管]。

      若要新增較大的地圖,您可以使用 Azure Logic Apps REST API - 地圖。 針對標準工作流程,Azure Logic Apps REST API 目前無法使用。

限制

  • 限制適用於每個整合帳戶的成品數目,例如地圖。 如需詳細資訊,請參閱 Azure Logic Apps 的限制和設定資訊。

  • 根據您正在使用取用或標準邏輯應用程式工作流程,適用下列限制:

    • 標準工作流程

      • 支援 XSLT 1.0、2.0 和 3.0。

      • 對應檔案大小沒有限制。

    • 取用工作流程

      • Azure Logic Apps 會配置有限的記憶體來處理 XML 轉換。 如果您建立取用工作流程,且您的對應或承載轉換具有高記憶體耗用量,這類轉換可能會失敗,而導致記憶體不足錯誤。 若要避免此案例,請考慮下列選項:

        • 編輯您的地圖或承載,以減少記憶體耗用量。

        • 建立 標準邏輯應用程式工作流程,其會在單一租使用者 Azure Logic Apps 中執行,並提供計算和記憶體資源的專用和彈性選項。

建立地圖

您可以使用 Visual Studio Code 搭配數據對應程式擴充功能,或使用 Microsoft Azure Logic Apps Enterprise Integration Tools 擴充功能建立 Visual Studio。

Visual Studio Code

當您使用 Visual Studio Code 和數據對應程式延伸模組建立對應時,您可以從工作流程呼叫這些對應,但只能使用 Data Mapper XSLT 來命名為 Transform 的 Data Mapper Operations 動作,而不是名為 Transform XMLXML 作業動作。 如需詳細資訊,請參閱 使用Visual StudioCode建立資料轉換的對應。

Visual Studio

當您使用 Visual Studio 建立地圖時,您必須使用下列其中一個工具建立整合專案:

在整合專案中,您可以建置整合對應檔,讓您以可視化方式對應兩個 XML 架構檔案之間的專案。 這些工具提供下列地圖功能:

  • 您可以使用地圖的圖形表示法,其中顯示您建立的所有關聯性和連結。

  • 您可以在用來建立對應的 XML 架構之間建立直接資料複本。 Enterprise Integration SDK for Visual Studio 包含一個對應程式,讓這項工作如同繪製一條線條,將來源 XML 架構中的專案與其目標 XML 架構中的對應專案連接起來一樣簡單。

  • 有多個對應的作業或函式可供使用,包括字串函式、日期時間函式等等。

  • 若要新增範例 XML 訊息,您可以使用地圖測試功能。 只要使用一個手勢,您就可以測試您所建立的地圖,並檢閱產生的輸出。

  • 建置項目之後,您會取得 XSLT 檔。

您的對應必須具有下列屬性和 CDATA 包含元件程式代碼呼叫的區段:

  • name 是自訂元件名稱。

  • namespace 是元件中包含自定義程式碼的命名空間。

下列範例顯示參考名為 XslUtilitiesLib 之元件的對應,並從元件呼叫 circumference 方法。

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:msxsl="urn:schemas-microsoft-com:xslt" xmlns:user="urn:my-scripts">
<msxsl:script language="C#" implements-prefix="user">
    <msxsl:assembly name="XsltHelperLib"/>
    <msxsl:using namespace="XsltHelpers"/>
    <![CDATA[public double circumference(int radius){ XsltHelper helper = new XsltHelper(); return helper.circumference(radius); }]]>
</msxsl:script>
<xsl:template match="data">
<circles>
    <xsl:for-each select="circle">
        <circle>
            <xsl:copy-of select="node()"/>
                <circumference>
                    <xsl:value-of select="user:circumference(radius)"/>
                </circumference>
        </circle>
    </xsl:for-each>
</circles>
</xsl:template>
</xsl:stylesheet>

新增參考的元件

取用邏輯應用程式資源支援從地圖參考外部元件,這可讓您直接從 XSLT 對應呼叫自定義 .NET 程式代碼。

  1. 在 [Azure 入口網站 搜尋] 方塊中,輸入整合帳戶,然後選取 [整合帳戶]。

  2. 選取您要在其中新增元件的整合帳戶。

  3. 在整合帳戶的功能表上,選取 [ 概觀]。 在 [設定] 下,選取 [元件]。

  4. 在 [ 元件 ] 窗格工具列上,選取 [ 新增]。

根據您的元件檔案大小,遵循上傳最多 2 MB 或大於 2 MB 但最多 8 MB 的元件的步驟。 如需整合帳戶中元件數量的限制,請檢閱 Azure Logic Apps 的限制和設定。

注意

如果您變更元件,您也必須更新地圖,無論地圖是否有變更。

新增最多 2 MB 的元件

  1. 在 [新增元件] 下,輸入元件的名稱。 將 [小型檔案] 保持選取。 在 [ 元件 ] 方塊旁,選取資料夾圖示。 尋找並選取您要上傳的元件。

    選取元件之後,元件 名稱 屬性會自動顯示元件的檔名。

  2. 完成時,選取確定

    元件檔案完成上傳之後,元件會出現在 [元件 ] 清單中。 在整合帳戶的 [概觀] 窗格的 [成品] 底下,也會顯示您上傳的元件。

新增超過 2 MB 的元件

若要新增較大的元件,您可以將元件上傳至 Azure 記憶體帳戶中的 Azure Blob 容器。 新增元件的步驟會根據您的 Blob 容器是否具有公用讀取許可權而有所不同。 因此,首先,請遵循下列步驟來檢查 Blob 容器是否具有公用讀取許可權: 設定 Blob 容器的公用存取層級

檢查容器存取層級

  1. 開啟 [Azure 儲存體總管]。 在 [總管] 視窗中,如果尚未展開,請展開您的 Azure 訂用帳戶。

  2. 展開 儲存體 帳戶> {your-storage-account} >Blob 容器。 選取您的 Blob 容器。

  3. 從 Blob 容器的快捷方式選單中,選取 [ 設定公用存取層級]。

上傳至具有公用存取權的容器
  1. 將元件上傳至您的記憶體帳戶。 在右側視窗中,選取 [ 上傳]。

  2. 完成上傳之後,請選取已上傳的元件。 在工具列上,選取 [ 複製 URL ],以便複製元件的 URL。

  3. 返回開啟 [新增元件] 窗格的 Azure 入口網站。 輸入元件的名稱。 選取 [大型檔案] (大於 2 MB)。

    [ 內容 URI] 方塊現在會出現,而不是 [ 元件] 方塊

  4. 在 [ 內容 URI] 方塊中,貼上元件的 URL。 完成新增元件。

    元件完成上傳之後,元件會出現在 [元件 ] 清單中。 在整合帳戶的 [概觀] 窗格的 [成品] 底下,也會顯示您上傳的元件。

上傳至沒有公用存取權的容器
  1. 將元件上傳至您的記憶體帳戶。 在右側視窗中,選取 [ 上傳]。

  2. 完成上傳之後,請為您的元件產生共用存取簽章 (SAS)。 從元件的快捷方式功能表中,選取 [ 取得共用存取簽章]。

  3. 在 [共用存取簽章] 窗格中,選取 [產生容器層級共用存取簽章 URI>建立]。 產生 SAS URL 之後,選取 [URL ] 方塊旁的 [ 複製]。

  4. 返回開啟 [新增元件] 窗格的 Azure 入口網站。 輸入元件的名稱。 選取 [大型檔案] (大於 2 MB)。

    [ 內容 URI] 方塊現在會出現,而不是 [ 元件] 方塊

  5. 在 [ 內容 URI] 方塊中,貼上您先前產生的 SAS URI。 完成新增元件。

元件完成上傳之後,元件會出現在 [元件 ] 清單中。 在整合帳戶的 [概觀] 頁面的 [成品] 下,也會顯示您上傳的元件。

新增地圖

  • 如果您正在使用取用工作流程,您必須將對應新增至連結整合帳戶。

  • 如果您使用標準工作流程,您有下列選項:

    • 將對應新增至連結整合帳戶。 您可以跨多個標準邏輯應用程式資源和其子工作流程共用對應和整合帳戶。

    • 將對應直接新增至邏輯應用程式資源。 不過,您只能在相同的邏輯應用程式資源中跨子工作流程共享該對應。

將對應新增至整合帳戶

  1. Azure 入口網站 中,使用您的 Azure 帳戶認證登入。

  2. 在 [Azure 入口網站 搜尋方塊中,輸入整合帳戶,然後選取 [整合帳戶]。

  3. 尋找並選取您的整合帳戶。

  4. 在整合帳戶的導覽功能表上,選取 [設定] 底下的 [地圖]。

  5. [地圖] 窗格工具列上,選取 [新增]。

針對取用工作流程,根據地圖的檔案大小,現在請遵循上傳最多 2 MB 或超過 2 MB 的地圖的步驟。

新增最多 2 MB 的對應

  1. 在 [ 新增地圖] 窗格中,輸入地圖的唯一名稱。

  2. 在 [對應類型] 底下,選取類型,例如:LiquidXSLTXSLT 2.0XSLT 3.0

  3. 在 [ 對應] 方塊旁,選取資料夾圖示。 選取要上傳的對應。

    如果您將 Name 屬性保留空白,在您選取對應檔案之後,地圖的檔名會自動出現在該屬性中。

  4. 完成時,選取確定

    地圖檔案上傳完成之後,地圖會出現在 地圖 清單中。 在整合帳戶的 [概觀] 頁面的 [成品] 底下,您上傳的對應也會隨即出現。

新增超過 2 MB 的地圖

若要為取用工作流程新增較大的地圖,請使用 Azure Logic Apps REST API - 地圖


將對應新增至標準邏輯應用程序資源

只有在您想要將地圖直接新增至標準邏輯應用程式資源時,才適用下列步驟。 否則, 請將對應新增至整合帳戶

Azure 入口網站

  1. 在邏輯應用程式資源的功能表上,選取 [成品] 底下的 [地圖]。

  2. [地圖] 窗格工具列上,選取 [新增]。

  3. 在 [ 新增地圖 ] 窗格中,輸入地圖的唯一名稱,並包含 .xslt 擴展名名稱。

  4. 在 [ 對應] 方塊旁,選取資料夾圖示。 選取要上傳的對應。

  5. 完成時,選取確定

    地圖檔案上傳完成之後,地圖會出現在 地圖 清單中。 在整合帳戶的 [概觀] 頁面的 [成品] 底下,您上傳的對應也會隨即出現。

Visual Studio Code

  1. 在邏輯應用程式項目的 結構中,開啟 Artifacts 資料夾,然後開啟 地圖資料夾。

  2. [地圖] 資料夾中,新增地圖。


編輯地圖

若要更新現有的地圖,您必須上傳具有所需變更的新對應檔案。 不過,您可以先下載現有的地圖進行編輯。

  1. 在 Azure 入口網站,如果尚未開啟,請開啟您的整合帳戶。

  2. 在整合帳戶的功能表上,選取 [設定] 底下的 [地圖]。

  3. 開啟 [地圖] 窗格之後,選取您的地圖。 若要先下載和編輯地圖,請在 [地圖] 窗格工具欄上,選取 [下載],然後儲存地圖。

  4. 當您準備好上傳更新的地圖時,請在 [地圖] 窗格中,選取您要更新的地圖。 在 [地圖] 窗格工具列上,選取 [更新]。

  5. 尋找並選取您要上傳的更新地圖。

    地圖檔案上傳完成之後,更新的地圖會出現在 地圖 清單中。

刪除地圖

  1. Azure 入口網站 中,如果尚未開啟,請開啟您的整合帳戶。

  2. 在整合帳戶的功能表上,選取 [設定] 下的 [地圖]。

  3. 開啟 地圖 窗格之後,選取您的地圖,然後選取 [刪除]。

  4. 若要確認您想要刪除地圖,請選取 [ ]。

下一步