Share via


以批次或群組的方式,在 Azure Logic Apps 中的合作對象之間交換 EDI 訊息

適用於:Azure Logic Apps (使用量)

在企業對企業 (B2B) 案例中,合作夥伴通常是以群組或批次方式交換訊息。 當您使用 Logic Apps 建置批次處理解決方案時,您可以傳送訊息給合作對象,並以批次方式一起處理這些訊息。 本文說明如何使用 X12 作為範例,藉由建立「批次傳送者」邏輯應用程式和「批次接收者」邏輯應用程式,來批次處理 EDI 訊息。

批次處理 X12 訊息的作用,和批次處理其他訊息相同;您可以使用批次觸發程序將訊息收集到批次中,並使用批次動作將訊息傳送至該批次。 此外,X12 批次處理會先包含 X12 編碼步驟,再讓訊息移至合作對象或其他目的地。 若要深入了解批次觸發程序和動作,請參閱批次處理訊息

在本文中,您會藉由在相同 Azure 訂用帳戶、Azure 區域內建立兩個邏輯應用程式,並遵循這個特定順序,來建置批次處理解決方案:

  • 「批次接收者」邏輯應用程式,會接受訊息並收集到批次中,直到符合指定準則而可釋出和處理這些訊息。 在此案例中,批次接收者也會使用指定的 X12 協議或合作夥伴身分識別,將批次中的訊息編碼。

    請務必先建立批次接收者,這樣一來,您之後才可以在建立批次傳送者時選取批次目的地。

  • 「批次傳送者」邏輯應用程式工作流程,會將訊息傳送給先前建立的批次接收者。

請務必讓批次接收者和批次傳送者共用相同的 Azure 訂用帳戶和 Azure 區域。 如果未共用,您就無法在建立批次傳送者時選取批次接收者,原因是兩者並無法看到彼此。

必要條件

若要遵循此範例,您需要這些項目:

建立 X12 批次接收者

若要能夠將訊息傳送到批次中,該批次必須先成為這些訊息的傳送目的地。 因此,您必須先建立「批次接收者」邏輯應用程式 (其會從批次觸發程序來開始)。 這樣一來,當您建立「批次傳送者」邏輯應用程式時,就可以選取批次接收者邏輯應用程式。 批次接收者會繼續收集訊息,直到符合指定準則而可釋出和處理這些訊息。 雖然批次接收者不需要知道批次傳送者的任何訊息,但批次傳送者必須知道訊息的傳送目的地。

針對此批次接收者,您需要指定批次模式、名稱、釋出準則、X12 協議,以及其他設定。

  1. Azure 入口網站或 Visual Studio 中,使用下列名稱來建立一個邏輯應用程式:"BatchX12Messages"

  2. 將邏輯應用程式連結至整合帳戶

  3. 在 Logic Apps 設計工具中,新增觸發程序,它會啟動您的邏輯應用程式工作流程。 在搜尋方塊中,輸入 "batch" 作為篩選條件。 選取此觸發程序:批次訊息

    Add Batch trigger

  4. 設定批次接收者屬性:

    屬性 備註
    批次模式 內嵌
    批次名稱 TestBatch 僅適用於內嵌批次模式
    發行準則 依據訊息計數、依據排程 僅適用於內嵌批次模式
    訊息計數 10 僅適用於依據訊息計數釋出準則
    間隔 10 僅適用於依據排程釋出準則
    頻率 分鐘 僅適用於依據排程釋出準則

    Provide batch trigger details

    注意

    此範例不會設定批次的資料分割,因此每個批次會使用相同的資料分割索引鍵。 若要深入了解資料分割,請參閱批次處理訊息

  5. 現在,新增動作來將每個批次編碼:

    1. 在批次觸發程序下方,選擇 [新增步驟]

    2. 在搜尋方塊中,輸入 "X12 batch" 作為篩選條件,然後選取這個動作 (任何版本):批次編碼 <版本 - X12>

      Select X12 Batch Encode action

    3. 如果您先前未連線至整合帳戶,請立即建立該連線。 為連線提供名稱,選取您想要的整合帳戶,然後選擇 [建立]

      Create connection between batch encoder and integration account

    4. 為批次編碼器動作設定這些屬性:

      屬性 說明
      X12 協議的名稱 開啟清單,然後選取現有的協議。

      如果清單是空的,請務必將邏輯應用程式連結至整合帳戶 (具有所需協議)。

      BatchName 按一下此方塊內部,然後在動態內容清單出現後,選取 [批次名稱] 權杖。
      PartitionName 按一下此方塊內部,然後在動態內容清單出現後,選取 [資料分割名稱] 權杖。
      項目 關閉 [項目詳細資料] 方塊,然後按一下此方塊內部。 在動態內容清單出現後,選取 [批次處理的項目] 權杖。

      Batch Encode action details

      在 [項目] 方塊中:

      Batch Encode action items

  6. 儲存邏輯應用程式。

  7. 如果您使用 Visual Studio,請務必將批次接收者邏輯應用程式部署至 Azure。 否則,當您建立批次傳送者時,將無法選取批次接收者。

測試應用程式邏輯

為了確定批次接收者可正常運作,您可以新增測試用的 HTTP 動作,並將批次處理的訊息傳送至要求 Bin 服務

  1. 在 [X12 編碼] 動作下,選擇 [新增步驟]

  2. 在搜尋方塊中輸入 "http" 作為篩選條件。 選取此動作:HTTP - HTTP

    Select HTTP action

  3. 設定 HTTP 動作的屬性:

    屬性 說明
    方法 從這個清單中選取 [POST]
    URI 為要求 Bin 產生 URI,然後在這個方塊中輸入該 URI。
    本文 按一下此方塊內部,然後在動態內容清單開啟後,選取 [主體] 權杖,其會出現在 [依合約名稱的批次編碼] 區段中。

    如果您沒有看到 [主體] 權杖,請選取 [依合約名稱的批次編碼] 旁邊的 [查看更多]

    Provide HTTP action details

  4. 儲存邏輯應用程式。

    批次接收者邏輯應用程式類似下列範例︰

    Save your batch receiver logic app

建立 X12 批次傳送者

現在,請建立一或多個會將訊息傳送給接收者邏輯應用程式的邏輯應用程式。 在每個批次傳送者中,您可以指定批次接收者邏輯應用程式和批次名稱、訊息內容,和任何其他設定。 您可以選擇性地提供唯一的資料分割索引鍵,將批次分成子集來收集具有該索引鍵的訊息。

  • 請確定您已經建立批次接收者,因此當您建立批次傳送者時,可以選取現有批次接收者作為目的地批次。 雖然批次接收者不需要知道批次傳送者的任何訊息,但批次傳送者必須知道訊息的傳送目的地。

  • 請務必讓批次接收者和批次傳送者共用相同的 Azure 區域和 Azure 訂用帳戶。 如果未共用,您就無法在建立批次傳送者時選取批次接收者,原因是兩者並無法看到彼此。

  1. 使用下列名稱來建立另一個邏輯應用程式:"SendX12MessagesToBatch"

  2. 在搜尋方塊中,輸入「當 http 要求」作為篩選條件。 選取此觸發程序:[收到 HTTP 要求時]

    Add the Request trigger

  3. 新增動作來將訊息傳送至批次。

    1. 在 [HTTP 要求] 動作下,選擇 [新增步驟]

    2. 在搜尋方塊中,輸入 "batch" 作為篩選條件。 選取 [動作] 清單,然後選取此動作:選擇包含批次觸發程序的 Logic Apps 工作流程 - 將訊息傳送給批次

      Select

    3. 現在,選取您先前建立的 "BatchX12Messages" 邏輯應用程式。

      Select

    4. 選取此動作:Batch_messages - <your-batch-receiver>

      Select

  4. 設定批次傳送者的屬性。

    屬性 說明
    批次名稱 接收者邏輯應用程式所定義的批次名稱,在本例中為 "TestBatch"

    重要:批次名稱會在執行階段驗證,而且必須符合接收者邏輯應用程式所指定的名稱。 變更批次名稱會導致批次傳送者失敗。

    訊息內容 您想要傳送的訊息內容,在本例中為主體權杖

    Set batch properties

  5. 儲存邏輯應用程式。

    批次傳送者邏輯應用程式類似下列範例︰

    Save your batch sender logic app

儲存邏輯應用程式

若要測試批次處理解決方案,請從 Postman 或類似的工具,將 X12 訊息張貼到批次傳送者邏輯應用程式。 不久之後,您就會開始在要求 Bin 中收到 X12 訊息 (每隔 10 分鐘或每 10 個一批),這些訊息全都具有相同的資料分割索引鍵。

下一步