使用 BizTalk 協調流程建立自訂路線服務
屬於 Microsoft BizTalk ESB 工具組一部分的路線架構支援使用協調流程執行路線步驟。 您可以根據您的功能需求,將自訂路線服務實作為 Microsoft BizTalk Server協調流程,這可能包括下列各項:
(多個服務調用,如 安裝和執行 Scatter-Gather 範例)
通訊協定流量分配和訊息相互關聯 (例如 HTTP-MQSeries)
以來自外部資料源的訊息擴充為基礎的複雜路由決策
商業處理規則
使用BizTalk Server協調流程實作的每個路線服務都會負責下列事項:
使用支援重新提交 (單向路線的 ESB 例外狀況處理架構或選擇性自訂例外狀況處理常式)
推進路線並透過 BizTalk Server 發佈輸出訊息,讓下一個路線服務步驟可以執行
使用BizTalk Server協調流程建立自訂路線服務
建立包含新協調流程的新BizTalk Server專案;例如 MyCustomeItineraryService.odx。
加入下列組件的參考:
Microsoft.Practices.ESB.Itinerary
Microsoft.Practices.ESB.Itinerary.Schemas
Microsoft.Practices.ESB.ExceptionHandling
Microsoft.Practices.ESB.ExceptionHandling.Faults
在協調流程中定義邏輯直接系結接收埠和啟動的接收圖形。
定義訂用帳戶篩選,以從訊息路線內容啟動協調流程,讓協調流程執行 MyCustomItineraryService 步驟。 下列程式碼顯示適合篩選準則的範例。
(Microsoft.Practices.ESB.Itinerary.Schemas.ServiceName == "MyCustomItineraryService") && (Microsoft.Practices.ESB.Itinerary.Schemas.ServiceState == "Pending") && (Microsoft.Practices.ESB.Itinerary.Schemas.ServiceType == "Orchestration")
定義 Microsoft.Practices.ESB.Itinerary.ItineraryStep類型的協調流程。 將運算式活動新增至填入此變數的協調流程,如下列程式碼所示。
// Retrieve the current itinerary step. itinerary = new Microsoft.Practices.ESB.Itinerary.SerializableItineraryWrapper(); step = new Microsoft.Practices.ESB.Itinerary.SerializableItineraryStepWrapper(); itinerary.Itinerary = Microsoft.Practices.ESB.Itinerary.ItineraryOMFactory.Create(InboundMessage); step.ItineraryStep = itinerary.Itinerary.GetItineraryStep(InboundMessage);
將自訂實作新增至路線,以建立下一個路線步驟的輸出訊息;例如,OutboundMsg。
使用下列使用來自輸入訊息之訊息內容的運算式活動來前進路線。
OutboundMessage(*) = InboundMessage(*); itinerary.Itinerary.Advance(OutboundMessage, itineraryStep.ItineraryStep);
透過直接系結的傳送埠傳送輸出訊息,以啟動下一個路線服務。
如需使用BizTalk Server協調流程實作自訂路線服務的詳細資訊,請參閱安裝和執行路線隨進範例和安裝和執行 Scatter-Gather 範例。