共用方式為


如何:使用行程路由便箋將單一訊息路由至多個收件者

目標

本節示範如何使用設計工具網域特定語言 (DSL) 來建立路線,以使用靜態解析程式和 BizTalk Server FILE 配接器,將訊息路由傳送至三個不同的收件者。

在此作說明主題中,您將完成下列步驟:

  • 建立具有三個靜態解析程式的行程,以將郵件路由傳送至多個收件者。

  • 使用路線測試用戶端範例應用程式來測試行程。

先決條件

此主題中的步驟需要先完成 開發活動的必要條件

步驟

建立ESB路線 DSL 模型

  1. 在 Visual Studio 中,開啟 C:\HowTos\Patterns\Patterns.sln。

  2. 在 [方案總管] 中,右鍵點選 行程庫,指向新增,然後點選 新增行程

  3. 在 [ 新增專案 ] 對話框中,按兩下 [範本] 窗格中的 [ 路線][Dsl ]。

  4. 在 [ 名稱] 方塊中,輸入 RecipientList,然後按兩下 [ 新增]。

配置行程屬性

  1. 在 Visual Studio 中,按一下 RecipientList.itinerary 的設計畫面。 在 [RecipientList 屬性] 視窗中,設定下列屬性:

    1. 在 [ 模型導出工具 ] 下拉式清單中,按兩下 [ XML 行程匯出工具]。

    2. 在 [ 擴充程序設定 ] 區段中,按兩下 [行程 XML 檔案 ] 屬性旁的省略號按鈕 (...)。

    3. 在 [ 選取 XML 檔案 ] 對話框的 [ 檔名] 方塊中,輸入 C:\HowTos\Itineraries\RecipientList,然後按兩下 [ 儲存]。

      備註

      此步驟可讓您將行程匯出為 XML 至本機檔案位置。 藉由將行程導出至本機檔案位置,而不是匯出至行程資料庫,即可使用 ESB 測試用戶端應用程式來測試行程。 您稍後將在此操作說明主題中完成此流程。

定義行程的結構

  1. 從 [工具箱] 將 On-Ramp 模型專案拖曳至設計介面。 在 [OnRamp1 屬性] 視窗中,設定下列屬性:

    1. 按兩下 [名稱] 屬性,然後輸入 ReceiveNAOrder

    2. 擴充器 下拉式清單中,點選 On-Ramp Extender

    3. [BizTalk 應用程式 ] 下拉式清單中,按兩下 [Microsoft.Practices.ESB]。

    4. 接收埠 下拉式清單中,點選 OnRamp.行程

  2. 從 [工具箱] 將 [路線服務 ] 模型專案拖曳至設計介面,然後將它放在 On-Ramp 模型元素的右邊。 在 ItineraryService1 屬性窗口中,配置以下屬性:

    1. 按一下 名稱 屬性,然後輸入 RouteToThreeRecipients

    2. 在 [ 路線服務擴充程式 ] 下拉式清單中,按兩下 [ 傳訊擴充器]。

      備註

      這個屬性會定義進程將發生在管線中(傳訊)。 或者,如果過程將在編排中執行,則將 方案服務擴充器 屬性設定為 編排擴充器

    3. 容器 下拉式清單中,展開 ReceiveNaOrderDoc,然後按一下 接收處理程式

    4. 在 [ 服務名稱] 下拉式清單中,按兩下 [Microsoft.Practices.ESB.Services.Routing]。

  3. 以滑鼠右鍵按下 RouteToThreeRecipients 模型專案的 Resolver 集合,然後按兩下 [新增解析程式]。 在 [Resolver1 屬性] 視窗中,設定下列屬性:

    1. 按兩下 [名稱] 屬性,然後輸入 FirstResolver

    2. 在 [ 解析程序實作 ] 下拉式清單中,按兩下 [ 靜態解析程序擴充功能]。

    3. 在 [ 傳輸名稱] 下拉式清單中,按兩下 [ 檔案]。

    4. 點選 「傳輸位置」 屬性,然後輸入 C:\HowTos\Out\First%MessageID%.xml

      備註

      您已為此行程服務新增三個解析程式中的前一個。 您現在將新增兩個解析程式,以將郵件路由傳送給其他收件者。

  4. 以滑鼠右鍵按下 RouteToThreeRecipients 模型專案的 Resolver 集合,然後按兩下 [新增解析程式]。 在 [Resolver1 屬性] 視窗中,設定下列屬性:

    1. 按兩下 [名稱] 屬性,然後輸入 SecondResolver

    2. 在 [ 解析程序實作 ] 下拉式清單中,按兩下 [ 靜態解析程序擴充功能]。

    3. 在 [ 傳輸名稱] 下拉式清單中,按兩下 [ 檔案]。

    4. 點選 「傳輸位置」 屬性,然後輸入 C:\HowTos\Out\Second%MessageID%.xml

  5. 以滑鼠右鍵按下 RouteToThreeRecipients 模型專案的 Resolver 集合,然後按兩下 [新增解析程式]。 在 [Resolver1 屬性] 視窗中,設定下列屬性:

    1. 按兩下 [名稱] 屬性,然後輸入 ThirdResolver

    2. 在 [ 解析程序實作 ] 下拉式清單中,按兩下 [ 靜態解析程序擴充功能]。

    3. 在 [ 傳輸名稱] 下拉式清單中,按兩下 [ 檔案]。

    4. 點選 「傳輸位置」 屬性,然後輸入 C:\HowTos\Out\Third%MessageID%.xml

  6. 在 [工具箱] 中,按兩下 [連接器]。 將連線從 ReceiveNAOrder 模型元素拖曳至 RouteToThreeRecipients 模型元素。

  7. 從 [工具箱] 將 Off-Ramp 模型元素拖曳至設計畫面,然後將它放在 RouteToThreeRecipients 模型元素的右邊。 在 [OffRamp1 屬性] 視窗中,設定下列屬性:

    1. 按兩下 [名稱] 屬性,然後輸入 SendThreeMessages

    2. 在 [ 擴充器 ] 下拉式清單中,按兩下 [Off-Ramp ESB 擴充器]。

    3. [BizTalk 應用程式 ] 下拉式清單中,按兩下 [GlobalBank.ESB]。

    4. 傳送埠 下拉式選單中,點擊 DynamicResolutionOneWay

  8. 從 [工具箱] 將 行程服務 模型元素拖曳至設計介面,然後將它放在 RouteToThreeRecipients 模型元素和 SendThreeMessages 模型元素之間。 在 ItineraryService1 屬性窗口中,配置以下屬性:

    1. 按兩下 [名稱] 屬性,然後輸入 SendPortFilter

    2. 在 [ 路線服務擴充程式 ] 下拉式清單中,按兩下 [Off-Ramp 擴充器]。

    3. 在 [離開匝道] 下拉式清單中,展開 [SendThreeMessages],然後按一下 [傳送處理程式]。

  9. 在 [工具箱] 中,按兩下 [連接器]。 將 RouteToThreeRecipients 樣板元素的連線拖曳到 SendPortFilter 樣板元素。

  10. 在 [工具箱] 中,按兩下 [連接器]。 將連線從 SendPortFilter 模型元素拖曳至 SendThreeMessages 模型元素。

匯出模型以搭配路線測試用戶端使用

  1. 在 Visual Studio 中,以滑鼠右鍵點擊 RecipientList 設計畫面,然後點擊 [ 匯出模型]。

    備註

    路線的 XML 版本會在 Visual Studio 中開啟。

  2. 儲存所有專案成品。

  3. 在 Windows 檔案總管中,瀏覽至 C:\HowTos\Itineraries, and then notice the creation of your itinerary XML (RecipientList.xml)。

測試行程

  1. 使用在開發活動必要條件期間建立的捷徑來開啟行程測試用戶端範例應用程式(C:\HowTos\ESB.Itinerary.Test.exe - 快捷方式)。

  2. 在 [路線測試用戶端] 中,清除 [ 使用 WCF 服務 ] 複選框,然後按兩下 [ 載入路線]。

  3. 在 [ 開啟路線檔案 ] 對話框中,流覽至 C:\HowTos\行程。 選取 [RecipientList.xml],然後按兩下 [ 開啟 ] 以載入行程。

  4. 按兩下 [確定 ] 清除 [成功載入路線]:訊息。

  5. 在 [路線測試用戶端] 中,按兩下 [ 載入消息 ] 方塊旁的省略號按鈕 (...)。

  6. 在 [ 選取要載入的 XML 檔 ] 對話框中,流覽至 C:\Patterns。 選取 [NAOrderDoc.xml],然後按兩下 [ 開啟 ] 以載入測試訊息。

  7. 按兩下 [ 提交要求 ] 按鈕。 測試完成時,按兩下 [ 確定 ] 以關閉出現的確認。

  8. 在 Windows 檔案總管中,流覽至 C:\HowTos\Out\。 確認下列訊息已寫入目錄:

    • 第一個%MessageID%.xml

    • 第二個%MessageID%.xml

    • 第三個%MessageID%.xml

其他資源

如需詳細資訊,請參閱下列相關主題: