以批次或群組的方式,在 Azure Logic Apps 中的合作對象之間交換 EDI 訊息
適用於:Azure Logic Apps (使用量)
在企業對企業 (B2B) 案例中,合作夥伴通常是以群組或批次方式交換訊息。 當您使用 Azure Logic Apps 來建置批次處理解決方案時,可以將訊息傳送給合作夥伴,並以批次方式一起處理這些訊息。 本文說明如何使用 X12 作為範例,藉由建立「批次傳送者」邏輯應用程式和「批次接收者」邏輯應用程式,來批次處理 EDI 訊息。
批次處理 X12 訊息的運作方式就像批次處理其他訊息一樣。 您可以使用批次觸發程序以將訊息收集到批次中,並使用批次動作以將訊息傳送至該批次。 此外,X12 批次處理會先包含 X12 編碼步驟,再讓訊息移至合作對象或其他目的地。 若要深入了解批次觸發程序和動作,請參閱批次處理訊息。
在本文中,您會藉由在相同 Azure 訂用帳戶、Azure 區域內建立兩個邏輯應用程式,並遵循這個特定順序,來建置批次處理解決方案:
「批次接收者」邏輯應用程式,會接受訊息並收集到批次中,直到符合指定準則而可釋出和處理這些訊息。 在此案例中,批次接收者也會使用指定的 X12 協議或合作夥伴身分識別,將批次中的訊息編碼。
請確定您先建立批次接收者,這樣一來,之後才能在建立批次傳送者時選取批次目的地。
「批次傳送者」邏輯應用程式工作流程,會將訊息傳送給先前建立的批次接收者。
請確定您的批次接收者和批次傳送者邏輯應用程式工作流程使用相同的 Azure 訂用帳戶和Azure 區域。 如果未共用,您就無法在建立批次傳送者時選取批次接收者,原因是兩者並無法看到彼此。
必要條件
Azure 訂用帳戶。 若您沒有訂閱,可以從免費 Azure 帳戶開始。
如何建立邏輯應用程式工作流程的基本知識。 如需詳細資訊,請參閱在多租用戶 Azure Logic Apps 中建立範例取用邏輯應用程式工作流程。
現有整合帳戶已與 Azure 訂用帳戶相關聯,並連結至邏輯應用程式。
整合帳戶中至少要有兩個現有合作夥伴。 每個合作夥伴在合作夥伴的屬性中都必須使用 X12 (標準運輸公司法典) 辨識符號作為企業身分識別。
整合帳戶中現有的 X12 協議。
若要使用 Visual Studio 而非 Azure 入口網站,請務必設定 Visual Studio 以便使用 Azure Logic Apps。
安裝或使用可傳送 HTTP 要求以測試解決方案的工具,例如:
- Visual Studio Code 搭配 Visual Studio Marketplace 的延伸模組
- PowerShell Invoke-RestMethod
- Microsoft Edge - 網路主控台工具
- Bruno
- curl
警告
如果您有敏感資料,例如認證、秘密、存取權杖、API 金鑰和其他類似資訊,請務必使用一項工具,以必要的安全性功能保護資料、離線或本機運作、不將資料同步處理至雲端,而且不需要您登入線上帳戶。 如此一來,您就可以降低向公眾公開敏感資料的風險。
建立 X12 批次接收者
若要能夠將訊息傳送到批次中,該批次必須先成為這些訊息的傳送目的地。 因此,您必須先建立「批次接收者」邏輯應用程式 (其會從批次觸發程序來開始)。 這樣一來,當您建立「批次傳送者」邏輯應用程式時,就可以選取批次接收者邏輯應用程式。 批次接收者會繼續收集訊息,直到符合指定準則而可釋出和處理這些訊息。 雖然批次接收者不需要知道批次傳送者的任何訊息,但批次傳送者必須知道訊息的傳送目的地。
針對此批次接收者,您需要指定批次模式、名稱、釋出準則、X12 協議,以及其他設定。
在 Azure 入口網站、Visual Studio 或 Visual Studio Code 中,使用下列名稱來建立邏輯應用程式:BatchX12Messages
在工作流程設計工具中,新增 [批次] 觸發程序,其會啟動邏輯應用程式工作流程。
遵循下列一般步驟,以新增名為 Batch messages 的 Batch 觸發程序。
設定批次接收者屬性:
屬性 值 備註 批次模式 內嵌 批次名稱 TestBatch 僅適用於內嵌批次模式 發行準則 依據訊息計數、依據排程 僅適用於內嵌批次模式 訊息計數 10 僅適用於依據訊息計數釋出準則 間隔 10 僅適用於依據排程釋出準則 頻率 分鐘 僅適用於依據排程釋出準則 注意
此範例不會設定批次的資料分割,因此每個批次會使用相同的資料分割索引鍵。 若要深入了解資料分割,請參閱批次處理訊息。
現在,新增動作來將每個批次編碼:
如果您先前未連線至整合帳戶,請立即建立該連線。 提供連線的名稱,並選取您想要的整合帳戶,然後選取 [建立]。
為批次編碼器動作設定這些屬性:
屬性 說明 X12 協議的名稱 開啟清單,然後選取現有的協議。 如果清單是空的,請務必將邏輯應用程式連結至整合帳戶 (具有所需協議)。
BatchName 按一下此方塊內部,然後在動態內容清單出現後,選取 [批次名稱] 權杖。 PartitionName 按一下此方塊內部,然後在動態內容清單出現後,選取 [資料分割名稱] 權杖。 項目 關閉 [項目詳細資料] 方塊,然後按一下此方塊內部。 在動態內容清單出現後,選取 [批次處理的項目] 權杖。 在 [項目] 方塊中:
儲存您的邏輯應用程式工作流程。
若要使用 Visual Studio,請確定將批次接收者邏輯應用程式部署至 Azure。 否則,當您建立批次傳送者時,將無法選取批次接收者。
測試工作流程
為了確定批次接收者可正常運作,您可以新增測試用的 HTTP 動作,並將批次處理的訊息傳送至要求 Bin 服務。
設定 HTTP 動作的屬性:
屬性 說明 方法 從這個清單中選取 [POST]。 URI 為要求 Bin 產生 URI,然後在這個方塊中輸入該 URI。 本文 按一下此方塊內部,然後在動態內容清單開啟後,選取 [主體] 權杖,其會出現在 [依合約名稱的批次編碼] 區段中。 如果您沒有看到 [主體] 權杖,請選取 [依合約名稱的批次編碼] 旁邊的 [查看更多]。
儲存您的工作流程您
您的批次接收者邏輯應用程式看起來像下列範例:
建立 X12 批次傳送者
現在,請建立一或多個會將訊息傳送給接收者邏輯應用程式的邏輯應用程式。 在每個批次傳送者中,您可以指定批次接收者邏輯應用程式和批次名稱、訊息內容,和任何其他設定。 您可以選擇性地提供唯一的資料分割索引鍵,將批次分成子集來收集具有該索引鍵的訊息。
請確定您已建立批次接收者。 如此一來,當您建立批次傳送者時,可以選取現有的批次接收者作為目的地批次。 雖然批次接收者不需要知道批次傳送者的任何訊息,但批次傳送者必須知道訊息的傳送目的地。
請確定您的批次接收者和批次傳送者邏輯應用程式工作流程使用相同的 Azure 訂用帳戶和Azure 區域。 如果未共用,您就無法在建立批次傳送者時選取批次接收者,原因是兩者並無法看到彼此。
使用下列名稱來建立另一個邏輯應用程式:SendX12MessagesToBatch
若要新增將訊息傳送至批次的動作,請遵循下列一般步驟,以新增名為 [選擇包含批次觸發程序的 Logic Apps 工作流程] 的 [將訊息傳送至批次] 動作。
選取您先前所建立的 BatchX12Messages 邏輯應用程式。
選取名為 Batch_messages - <your-batch-receiver> 的 BatchX12Messages 動作。
設定批次傳送者的屬性。
屬性 說明 批次名稱 接收者邏輯應用程式所定義的批次名稱,在本例中為 "TestBatch" 重要:批次名稱會在執行階段驗證,而且必須符合接收者邏輯應用程式所指定的名稱。 變更批次名稱會導致批次傳送者失敗。
訊息內容 您想要傳送的訊息內容,在本例中為主體權杖 儲存您的工作流程您
批次傳送者邏輯應用程式類似下列範例︰
測試工作流程
若要測試批次解決方案,請使用 HTTP 要求工具和其指示,將 X12 訊息張貼至批次傳送者邏輯應用程式工作流程。 不久之後,您就會開始在要求 Bin 中收到 X12 訊息 (每隔 10 分鐘或每 10 個一批),這些訊息全都具有相同的資料分割索引鍵。