關聯是將接收的訊息比對到協調流程的適當實例的過程。 例如,協調流程會發送一個訊息,並接收回應或回應返回至相同的協調流程。 有三種相互關聯的訊息交換模式:
傳統交握
循序車隊
平行車隊
在傳統的握手模式中,服務編排或商務流程之間的訊息交換中會存在握手,而您可以透過在服務編排中定義關聯集來實現這些握手。關聯集是一組已促進屬性的清單,包含用於將訊息路由至特定服務編排實例的具體值。
例如,假如您的流程設計是用來發出採購單、接收發票並支付款項,您必須確保發票訊息由發出對應採購單的同一流程實例接收,因為可能會同時處理多個採購單。 在此範例中,採購單標識符可作為相互關聯集的參數,以相互關聯採購單訊息和發票訊息。 以下是此範例的案例流程:
協調流程 A 會將採購單訊息傳送至協調流程 B。傳送採購單訊息之前,會初始化相互關聯集。
在協調流程 B 中,處理採購單、產生並傳回發票,第一個接收圖形會遵循相同的相互關聯集來接收採購單訊息。
處理採購單訊息之後,將發票訊息傳回協調流程 A 時,也會遵循相同的相互關聯集。
在協同作業 A 中的 [接收] 形狀上,從協同作業 B 接收發票訊息時,也遵循同一個關聯集,以確保根據預先定義的關聯集接收關聯發票訊息。
在世界上,循序車隊與平行車隊模式的存在,每當需要多個單一項目相互關聯,以完成個別項目無法達成的目標。 如需詳細資訊,請參閱 使用 Convoy 工作情境。
除了相互關聯的訊息交換模式之外,協調流程中還有兩種類型的相互關聯:
手動關聯
自動相互關聯
在手動相互關聯案例中,您可以手動設定協調流程來初始化,並遵循相互關聯集,將訊息與適當的實例產生關聯。 在自動相互關聯案例中,傳訊引擎會將訊息與您實例相互關聯,例如,當您在協調流程中設定 Request-Response 埠或 Self-Correlating 埠時。
每當協調流程沒有明確方式將訊息與實例產生關聯時,您必須使用相互關聯,例如啟動接收、要求回應或自我關聯埠。
使用相互關聯範例
從 https://go.microsoft.com/fwlink/?LinkId=73703 下載 SDK 範例「將訊息與協調流程實例相互關聯」。
從 https://go.microsoft.com/fwlink/?LinkId=73703下載 SDK 範例「平行車隊」。