訂單處理階段中的處理
商務程式管理解決方案包含兩個階段: CableOrder1 和 CableOrder2 協調流程,可執行訂單處理動作。 如需訂單程式如何分割成階段的詳細資訊,請參閱 處理階段數目。
這兩個處理階段都會在收到訂單訊息時開始,兩者在啟動後都會以狀態訊息回復 至 OrderManager 協調流程。 同樣地,兩者都會將訊息傳回 OrderManager ,以指出階段是否已完成或終止併發生錯誤。 如需 OrderManager 協調流程與處理階段之間連線的詳細資訊,請參閱 反向直接夥伴系結。
這兩個處理階段都會使用自我關聯、動態埠,將資訊傳回 OrderManger。 配合動態連接埠時,協調流程會將連接埠位址從訊息複製到傳送埠。
處理階段接收的所有訂單訊息都是 在 OrderBroker中建立的標準化、標準順序訊息。
注意
由於 CableOrder1 和 CableOrder2 協調流程的長度,您可能會想要閱讀本節,其中已開啟 Microsoft Visual Studio 中的協調流程。
CableOrder1 協調流程
CableOrder1協調流程會在收到訂單訊息時啟動。 接著,它會將回覆位址從訊息複製到階段完成通訊埠。 接下來,它會建構通知訊息,並將它當做 BeginStagePort 埠的回應傳送,然後將路由資訊儲存在區域變數中。
這樣,此協調流程就會自 SSO 取得組態資訊。 如需解決方案如何使用 SSO 的詳細資訊,請參閱 在商務程式管理解決方案中有效率地使用 SSO。
協調流程接著會建立 OrderHandler 物件的實例,以與後端進程通訊、檢查訊息的有效性、分析訊息、判斷服務類型,以及要採取的動作。 視要採取的動作而定,它會呼叫其中一個訂單動作協調流程 Activate、 Change或 Cancel ,並將 OrderHandler 物件傳遞至協調流程。
CableOrder1協調流程接著會檢查中斷、將訊息傳送給設施群組,並等候回聽。 如果協調流程收到來自設備群組的回應訊息,它就會繼續處理。 否則,若有發生中斷,協調流程就會擲出中斷例外錯誤。
協調流程會藉由建構完成訊息並透過 StageCompletion 埠傳送完成。
CableOrder2 協調流程
CableOrder2 協調流程會針對路由資訊、SSO 組態資訊,以及建立 OrderHandler 物件的實例,執行與 CableOrder1 協調流程相同的起始步驟。
協調流程接著會檢查中斷,並在呼叫Complete協調流程中傳遞OrderHandler物件。 接下來,協調流程會建立訂單狀態訊息、更新訂單歷程記錄,以及透過 StageCompletion 埠傳送完成訊息。