共用方式為


使用 BizTalk 協調流程建立自訂路線服務

屬於 Microsoft BizTalk ESB 工具組一部分的路線架構支援使用協調流程執行路線步驟。 您可以根據您的功能需求,將自訂路線服務實作為 Microsoft BizTalk Server協調流程,這可能包括下列各項:

  • (多個服務調用,如 安裝和執行 Scatter-Gather 範例)

  • 通訊協定流量分配和訊息相互關聯 (例如 HTTP-MQSeries)

  • 以來自外部資料源的訊息擴充為基礎的複雜路由決策

  • 商業處理規則

    使用BizTalk Server協調流程實作的每個路線服務都會負責下列事項:

  • 使用支援重新提交 (單向路線的 ESB 例外狀況處理架構或選擇性自訂例外狀況處理常式)

  • 推進路線並透過 BizTalk Server 發佈輸出訊息,讓下一個路線服務步驟可以執行

使用BizTalk Server協調流程建立自訂路線服務

  1. 建立包含新協調流程的新BizTalk Server專案;例如 MyCustomeItineraryService.odx。

  2. 加入下列組件的參考:

    • Microsoft.Practices.ESB.Itinerary

    • Microsoft.Practices.ESB.Itinerary.Schemas

    • Microsoft.Practices.ESB.ExceptionHandling

    • Microsoft.Practices.ESB.ExceptionHandling.Faults

  3. 在協調流程中定義邏輯直接系結接收埠和啟動的接收圖形。

  4. 定義訂用帳戶篩選,以從訊息路線內容啟動協調流程,讓協調流程執行 MyCustomItineraryService 步驟。 下列程式碼顯示適合篩選準則的範例。

    (Microsoft.Practices.ESB.Itinerary.Schemas.ServiceName   
        == "MyCustomItineraryService")   
    && (Microsoft.Practices.ESB.Itinerary.Schemas.ServiceState == "Pending")  
    && (Microsoft.Practices.ESB.Itinerary.Schemas.ServiceType   
        == "Orchestration")  
    
  5. 定義 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);  
    
    
  6. 將自訂實作新增至路線,以建立下一個路線步驟的輸出訊息;例如,OutboundMsg。

  7. 使用下列使用來自輸入訊息之訊息內容的運算式活動來前進路線。

    OutboundMessage(*) = InboundMessage(*);   
    itinerary.Itinerary.Advance(OutboundMessage, itineraryStep.ItineraryStep);  
    
  8. 透過直接系結的傳送埠傳送輸出訊息,以啟動下一個路線服務。

    如需使用BizTalk Server協調流程實作自訂路線服務的詳細資訊,請參閱安裝和執行路線隨進範例安裝和執行 Scatter-Gather 範例