關鍵訊息和欄位
本節簡短描述 OrderBroker 和 OrderManager 協調流程所處理的主要訊息和欄位。 如需應用程式中訊息的完整清單,請參閱 商務程式管理解決方案的訊息參考。
訂單訊息
OrderBroker 的訂單訊息是多部分訊息。 一部分包含路由資訊;另一部分則為訂單資訊。 定義路由訊息部分的 .NET 類別可讓它的所有欄位成為辨別欄位,如此協調流程便可存取做為訊息屬性的所有類別成員。 類別也包括路由類別中的升級欄位在內,因而能夠路由訊息。 所有升級欄位也是辨別欄位,因此能以較不複雜的註解進行設計程式和參考。
如需使用 .NET 類別定義訊息的詳細資訊,請參閱 在使用者程式碼中建構訊息。
識別訂單
解決方案使用路由資訊中的三個欄位來識別訂單。 在這三個清單中,有兩個識別訂單:訂單識別碼 (OrderID) ,而客戶識別碼 (CustomerID) 。 雖然這兩個欄位可識別訂單,但是訂單可有一個以上的執行個體。 例如,客戶可能訂購新的標準網路安裝,而稍後又來電將訂單變更為訂購新的豪華網路安裝。 原始的訂單不大可能在更新訂單送達之前完成。 這便會使訂單產生兩個執行個體。
為了區分訂單的實例,解決方案會使用唯一的訂單序號 (SeqNum) 。 OrderID、 CustomerID和 SeqNum 三個欄位會唯一識別訂單的實例。
最後,因為解決方案會針對 SeqNum使用增加的數位,所以解決方案可以區分更新與原始順序,因為更新具有較高的 SeqNum。
注意
解決方案依賴系統建立訂單要求,以將遞增值指派給 SeqNum。 如需相關欄位的名稱,請參閱輸入 Web 服務 CSRMainForm.aspx.cs的 ASP 頁面後置程式碼,以及將要求轉換成訂單的對應, CSR_OrderRequest_To_Order.btm 。
狀態
OrderBroker、OrderManager及其附屬協調流程會使用訂單訊息路由部分的兩個欄位來追蹤狀態:狀態和階段。 [ 狀態 ] 欄位會追蹤訂單的狀態。 下表描述 [ 狀態 ] 欄位的值。
值 | 設定之處 | Description |
---|---|---|
已接受 | OrderBroker | 訂單可繼續送往 OrderManager。 |
COMPLETED | OrderManager | 整份訂單處理完成,沒有發生錯誤。 |
ERROR | OrderManager | 偵測到訂單中有錯誤。 |
ORDERMANAGER-EXCEPTION | OrderManager | 處理訂單時,OrderManager 中發生例外狀況。 |
STAGE_n_COMPLETED | OrderManager | 指示已完成階段 n (其中 n 為數字),沒有發生錯誤。 |
STARTED | OrderManager | 已開始處理訂單。 |
TERMINATED | OrderManager | 由於取消而停止處理訂單。 |
階段
OrderManager會使用路由元件中的[階段] 欄位來指出訊息的處理階段。 此欄位在篩選條件中用來判定處理訊息的附屬協調流程。 OrderManager一開始會將Stage設定為一個 (1) 。 當訂單終止或完成時, OrderManager 會將 Stage 設定為協調流程變數 Stop的值。
RequestType
OrderManager也會使用訂單訊息的RequestType欄位。 若欄位值為 TERMINATE,便會終止該訂單。 協調流程會忽略 RequestType 欄位的其他所有值,並依賴訂單序號來辨識訂單更新和重複專案。 否則, OrderBroker 會將 RequestType 欄位設定為廠商或客戶服務系統中訊息中 [狀態 ] 欄位的值。
OrderTypeCode、OrderType 和 ServiceClass
訂單的類型位於訂單訊息的 OrderTypeCode 欄位中。 OrderBroker會將其值設定為來自客戶服務系統或廠商系統之訊息中OrdTypeCode欄位中的值。 下表顯示 OrderTypeCode的可能值:
值 | Description |
---|---|
NS | 新的標準纜線安裝。 |
ND | 新的豪華網路安裝。 |
XS | 取消標準網路安裝。 |
XD | 取消豪華網路安裝。 |
CS | 變更標準網路安裝。 |
CD | 變更豪華網路安裝。 |
UNKNOWN | 未知。 |
稍後, 驗證 協調流程會使用商務規則引擎,將這些值轉譯成兩個不同的欄位 OrderType 和 ServiceClass。 驗證協調流程是由第一個訂單處理階段CableOrder1呼叫。
下表提供 OrderType的值:
OrderTypeCode 值 | OrderType 值 |
---|---|
NS、ND | 啟動 |
XS、XD | 取消 |
CS、CD | CHANGE |
組合無效。 | 無效 |
ServiceClass的值是對應的單一字母、標準字母的 S,或D用於擷取。
其他識別碼
解決方案也使用識別碼以供每份訂單使用。 此識別碼 RequestId在所有訂單中都必須是唯一的。 輸入 Web 服務會自動指派 GUID 給它。 透過批次輸入提交的訊息必須包含欄位的值。 欄位是順序架構中的 RequestID 。 不過, OrderBroker會使用 CSR_OrderRequest 架構來處理訂單。 此欄位在此架構中顯示為 ReqId ,而且是辨別屬性。
解決方案會使用 RequestId 來形成 BAM 追蹤系統中所使用的活動識別碼。
另請參閱
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應