適用於:Azure Logic Apps (使用量 + 標準)
在企業對企業 (B2B) 案例中,合作夥伴通常是以群組或批次方式交換訊息。 當您使用 Azure Logic Apps 來建置批次處理解決方案時,可以將訊息傳送給合作夥伴,並以批次方式一起處理這些訊息。
批次處理 X12 訊息的方式與批次處理其他訊息的方式相同。 您可以使用批次觸發器,將訊息彙整成批次。 您可以使用批次動作將訊息傳送至批次。 在訊息移至交易夥伴或其他目的地之前,您也需要進行 X12 編碼步驟。 如需詳細資訊,請參閱 傳送、接收和批次處理訊息。
本指南說明如何建立兩個邏輯應用程式 ( 批次傳送端 和 批次接收端) 來建置處理電子資料交換 (EDI) 訊息的批次處理解決方案。 例如,此解決方案會處理 X12 訊息。
批次接收者會將訊息收集到批次中,直到符合特定準則以釋放和處理這些訊息為止。 此批次接收者也會使用指定的 X12 合約或合作夥伴身分識別,對批次中的訊息進行編碼。
您必須先建立批次接收器作為批次目的地。 然後,您可以稍後在建立批次傳送者時選取批次接收者。
批次傳送者邏輯應用程式工作流程會將訊息傳送至先前建立的批次接收者。
您的批次接收者和批次傳送者必須使用相同的 Azure 訂用帳戶 和 Azure 區域。 如果未共用,您就無法在建立批次傳送者時選取批次接收者,原因是兩者並無法看到彼此。
附註
在標準邏輯應用程式中,您可以建立兩個工作流程作為批次接收者和批次傳送者。 消耗型邏輯應用程式僅包含一個工作流程,因此您必須建立兩個邏輯應用程式。
先決條件
Azure 帳戶和訂閱。 如果您沒有訂用帳戶,請註冊一個免費的 Azure 帳戶。
如何建立邏輯應用程式工作流程的基本知識。 如需詳細資訊,請參閱下列文件:
使用相同 Azure 訂用帳戶並連結至您的邏輯應用程式的整合帳戶。
您的整合帳戶中至少有兩個 交易夥伴 。 每個合作夥伴必須在合作夥伴屬性中,將 X12(標準運輸公司識別碼限定符)用作業務身分識別。
整合帳戶中現有的 X12 協議。
安裝或使用可傳送 HTTP 要求以測試解決方案的工具,例如:
- Visual Studio Code 搭配 Visual Studio Marketplace 的延伸模組
- PowerShell Invoke-RestMethod
- Microsoft Edge - 網路主控台工具
- 布魯諾
- curl
注意
針對您有敏感數據的案例,例如認證、秘密、存取令牌、API 密鑰和其他類似資訊,請務必使用一個工具,以必要的安全性功能保護您的數據。 此工具應該離線或本機運作,且不需要登入線上帳戶或將數據同步處理至雲端。 當您使用具有這些特性的工具時,可以降低公開敏感數據給公眾的風險。
建立 X12 批次接收者
在將訊息傳送至批次之前,批次必須先作為目的地批次存在。 因此,請先建立批次接收器,然後使用 批次觸發程式啟動工作流程。 如此一來,當您建立批次傳送者時,您可以選取批次接收者。
批次接收者會收集訊息,直到符合指定的準則,以釋放及處理這些訊息為止。 批次接收者不需要知道批次傳送者,但批次傳送者必須知道將訊息傳送到何處。
在 Azure 入口網站 或 Visual Studio Code 中,建立名為 BatchX12Messages 的邏輯應用程式。
如果您先前未將邏輯應用程式連結至整合帳戶,請 立即連結您的邏輯應用程式。
請遵循下列一般步驟,新增名為 Batch trigger 的 Batch 作業觸發程式。
在設計工具上,選取 [批次觸發程序] 以開啟觸發程序資訊窗格。
在資訊窗格上,選取 批次觸發程式的標題。 將名稱變更為 *批次訊息。
在 [參數] 索引標籤上,提供下列參數的值:
參數 值 注意 模式 內嵌 或 整合帳戶 僅適用於消費工作流。 批次名稱 < 批次名稱> 要使用的批次名稱。 這個範例使用 TestBatch。
- 取用工作流程:僅在模式為內嵌時可用。 這個範例使用TestBatch。
- 標準工作流程:隨時可用。發行準則 - 以訊息計數為基礎
- - 以大小為依據:
- 基於時間表要使用的發行準則類型。
- 取用工作流程:僅在模式為內嵌時可用。
- 標準工作流程:隨時可用。
此範例使用 以訊息計數為基礎 和 以排程為基礎。訊息計數 < 整數> 只有在 「發行準則」 為 「訊息計數型」時才可用。 指定要收集和釋放的訊息數目。 此範例將 10用作值。間隔 < 整數> 只有在 「發行準則」 以 排程為基礎時才可用。 指定重複發生的時間間隔數。 此範例將 10用作值。頻率 < 時間單位> 只有在 「發行準則」 以 排程為基礎時才可用。 指定重複發生的時間單位。 此範例使用 Minute 作為值。
附註
此範例不會設定批次的分割區。 每個批次都使用相同的分區金鑰。 如需分割區的詳細資訊,請參閱 建立批次傳送者。
新增對每個批次進行編碼的動作:
請遵循下列一般步驟,新增名為 的 < 動作。
如果您先前未連線至整合帳戶,請立即建立該連線。
- 為您的連線提供一個名稱。
- 提供 整合帳戶識別碼 和 整合帳戶 SAS URL 參數的值。
- 請選擇 新建。
在設計工具上,選取批次編碼器動作以開啟動作資訊窗格。 在 [參數] 索引標籤上,提供下列參數的值。 如有必要,請從 進階參數中選取參數。
參數 描述 X12 協議的名稱 從此清單中,選取您的合約。
附註: 如果清單是空的,請確定您將 邏輯應用程式連結至 具有合約的整合帳戶。BatchName 選取此方塊內以顯示輸入選項。 選取照明圖示以開啟動態內容清單。 從清單中,於[批次訊息]下,選擇名為[批次名稱]的觸發輸出。 PartitionName 選取此方塊內以顯示輸入選項。 選取閃電圖示以開啟動態內容清單。 從清單的 [批次訊息] 底下,選取 [分割區名稱]。 項目 請選擇T圖示以切換至輸入整個陣列模式。 選取 [項目] 方塊內以顯示輸入選項。 選取閃電圖示以開啟動態內容清單。 從此清單中的 批次消息 之下,選取名為 批次項目 的觸發器輸出。 在 [項目] 方塊中:
儲存您的工作流程。
如果您使用 Visual Studio Code,請先 將批次接收器邏輯應用程式部署至 Azure。 否則,當您建立批次傳送者時,將無法選取批次接收者。
測試您的工作流程
為了確定批次接收者可正常運作,您可以新增測試用的 HTTP 動作,並將批次處理的訊息傳送至要求 Bin 服務。
請遵循下列一般步驟,新增名為 HTTP 的 HTTP 動作。
在設計工具上,選取 HTTP 動作以開啟動作資訊窗格。 在 [參數] 索引標籤上,提供下列參數的值:
參數 描述 方法 從這個清單中選取 [POST]。 URI 為要求 Bin 產生 URI,然後在這個方塊中輸入該 URI。 本文 選取此方塊內以顯示輸入選項。 選取照明圖示以開啟動態內容清單。 從此清單中,在 [依合約名稱批次編碼] 底下,選取名為 [內容] 的動作輸出。
如果 內容未顯示,請選擇 "依合約名稱批次編碼" 旁邊的 "查看更多"。儲存您的工作流程。
您的批次接收者工作流程如下所示:
繼續進行下一節,您可以在其中建立批次傳送者,以將訊息傳送至批次接收者。
建立 X12 批次傳送者
現在,您需要一或多個邏輯應用程式,將訊息傳送至批次接收者。 針對每一個批次傳送者,指定批次接收者和批次名稱、訊息內容,以及任何其他設定。 您可以選擇性地提供唯一的分割區索引鍵,將批次劃分為子集,並使用該索引鍵收集訊息。
開始之前,請確定您已完成下列工作:
您已建立您的批次接收器。 當您建立批次傳送者時,批次接收者必須存在。 否則,您無法選取批次接收者作為目的地批次。 批次接收者不需要知道批次傳送者,但批次傳送者必須知道要將訊息傳送到何處。
請確定批次接收者和批次傳送者都使用相同的 Azure 訂用帳戶 和 Azure 區域。 如果未共用,您就無法在建立批次傳送者時選取批次接收者,原因是兩者並無法看到彼此。
建立另一個名為 SendX12MessagesToBatch 的邏輯應用程式。
遵循這些一般步驟,新增名為 [收到 HTTP 要求時]的要求觸發程序。
請遵循下列 一般步驟 ,根據您的邏輯應用程式類型新增 [批次作業 ] 動作:
- 取用:傳送至批次觸發工作流程
- 標準: 發送至批處理
請遵循邏輯應用程式類型的步驟:
- 使用量:選取您先前建立的 BatchX12Messages>Batch_messages>[新增] 動作。
- 標準:略過此步驟並進入下一步。
在 [參數] 索引標籤上,提供下列參數的值:
參數 描述 批次名稱 批次接收器中定義的批次名稱,在這個範例中為 TestBatch。
重要事項: 批次名稱會在執行時期進行驗證,且必須符合批次接收者所指定的名稱。 變更批次名稱會導致批次傳送者失敗。訊息內容 要傳送的訊息內容,也就是 HTTP 觸發程式的 Body 輸出。
選取 [訊息內容] 方塊來顯示輸入選項。 選取閃電圖示以開啟動態內容清單。 從清單中的 HTTP 底下,選取 Body。- 耗用量: 工作流程識別碼
- 標準: 工作流程名稱- 取用工作流程:值已預先填入。
- 標準:在批次接收者工作流程中輸入觸發程式名稱,在此範例中為 批次訊息 。觸發程序名稱 - 取用工作流程:值已預先填入。
- 標準:輸入批次接收者工作流程中的觸發名稱。儲存您的工作流程。
您的批次傳送者如下所示:
測試工作流程
若要測試批次處理解決方案,請從 HTTP 要求工具,將含有 X12 訊息的 HTTP POST 要求傳送至批次傳送端。 如果您使用範例數值,您會開始在請求容器中接收到 X12 訊息,這些訊息會以每 10 分鐘一次或每 10 個一組的形式送達,且所有訊息都具有相同的分割區索引鍵。