平行群組
平行群組可讓多個單一訊息聯結在一起,以達成所需的結果。 一組相關的訊息會依任何順序抵達,但 BizTalk Server 必須收到所有的訊息,才能開始處理。
例如,當醫院接受新病患時,醫院會要求病患提供多項資訊,包括保險資訊、過去就醫記錄和連絡資訊。 有幾種不同的人會收集此資訊,包括保險專員、護士和服務台人員。 有數個不同系統會處理此資訊。 收集和提交此資訊的工作不保證一定會按照正常的順序進行。 例如,資訊收集者可能忙著招呼其他病患、醫療記錄部門的動作可能落後預定時間,或者保險系統可能運作不正常。 我們必須在病患的就醫期間內,有系統地組織病患的這些資訊。 如此才能保證病患受到妥善的醫療照顧,而且收到正確的帳單。
上述的案例便是需要平行群組訊息處理的商務案例。 商務需求會衍生出一種規定,迫使醫院必須在收到三種不同訊息之後,才接受病患。 這三種訊息即是「保險」、「病歷」和「病患」訊息。 這些屬於病患的任何一則訊息都可能是最先抵達的訊息,因此會產生競爭條件。 若要解決此問題,會將三個 接收 圖形放入 平行動作 圖形中,而每個接收都會標示為 Activate = True。 這讓三個訊息中的任何一個都可以啟動協調流程。 協調流程執行個體會等到另外兩個訊息抵達之後,再繼續執行進一步的處理。
您可以使用 BizTalk Server 中的「平行相互關聯的接收」傳訊設計模式來實作平行群組。 平行相互關聯的接收是在 平行動作 圖形的兩個或多個分支中相互關聯的接收語句。 如果會在一項以上的平行工作中初始化相互關聯,則每個相互關聯接收也必須初始化一組完全相同的相互關聯。 接收相互關聯訊息的第一個這類工作會執行實際的初始化,並在協調流程中 平行動作 圖形中的其他工作上執行驗證。
如需平行 convoy 實作的範例,請參閱 上的 https://go.microsoft.com/fwlink/?LinkId=73703 SDK 範例「平行 Convoy」。