共用方式為


BAM 端對端 (BizTalk Server 範例)

端對端範例會示範如何使用 BAM 來使多個元件 (在此例中是三個協調流程和一個管線) 中的事件相互產生關聯。

BAM 會重新建構跨越管線元件和協調流程的商務活動。 在最低層級,這可藉由呼叫來自每個實作元件的 EventStream.EnableContinuation 來運作,這些元件預期活動有更多事件。 EnableContinuation的呼叫是明確的,而 Orchestration1 和 Orchestration2 中的呼叫則是藉由在一個排程中將 Continuation 資料夾新增至追蹤設定檔來進行,並將 ContinuationID 資料夾新增至後續排程。

下圖說明範例中使用的工作流程。

顯示如何讓多個元件的事件相互關聯的影像。

此範例的用途

BAM 端對端範例會示範如何使用 BAM 蒐集一個管線愈多個協調流程的資訊,並更新單一活動。

此範例的設計方式和原因

BAM 端對端範例是針對說明下列活動而設計:

  • 在管線內使用 BAM。

  • 使用追蹤設定檔編輯器 (TPE) 將活動項目對應到協調流程與訊息元素中的圖形。

  • 當解決方案的多個部分參與活動時,使用接續讓活動保持作用中。

範例的運作方式如下:

  1. 輸入訊息會從< Samples Path >\BamEndToEnd\Input 資料夾擷取。

  2. 管線元件會將唯一的 DocumentID 指派給訊息,並使用 BAM API 來開始新的 BAM 活動。 DocumentID 會附加當做輸入訊息的個別部分,供協調流程使用。

  3. 收到輸入訊息時,就會啟動 Orchestration1 服務。

  4. Orchestration1 修改輸入訊息,並將它當做參數傳遞給 Orchestration2。

  5. Orchestration2 會修改輸入訊息,並將其傳送至啟動 Orchestration3 的 MessageBox 資料庫。

  6. Orchestration3 會修改訊息,並將它寫入Samples Path > \BamEndToEnd\Output 資料夾 <

  7. 每個協調流程都會更新 BAM 活動中的活動專案。

可在何處找到此範例

您可以在範例 Path > \BAM\BamEndToEnd 中找到此範例 <

下表顯示此範例中的檔案,並描述其用途。

檔案 Description
BamEndToEnd.sln BAM 端對端範例方案。
BamEndToEnd.xls BAM 定義樣式表。
BamEndToEnd.xml BAM 定義 XML。
BAMEndToEndBinding.xml BAM 繫結。
Cleanup.bat 用來解除部署範例的批次檔。
InputMessage.xml 輸入訊息。
Setup.bat 用來編譯和部署範例的批次檔。
\Components\AssemblyInfo.cs 管線元件程式碼。
\Components\BAMMessagePartPLComponent.cs 管線元件程式碼。
\Components\Components.csproj 管線元件專案。
\Messages\InputMessage01.xml

...

\Messages\InputMessage10.xml
輸入訊息範例。
\Services\BAMInbound.btp 輸入管線檔案。
\Services\BAMPartSchema.xsd BAM 部分訊息結構描述。
\Services\Orchestration1.odx 協調流程。
\Services\Orchestration2.odx 協調流程。
\Services\Orchestration3.odx 協調流程。
\Services\PropertySchema.xsd 屬性結構描述。
\Services\Schema1.xsd 訊息結構描述。
\Services\Schema2.xsd 訊息結構描述。
Services\Schema3.xsd 訊息結構描述。
\Services\Services.btproj Visual Studio BizTalk 檔案專案。
\Services\Transform_1.btm 對應檔案。
\Services\Transform_2.btm 對應檔案。
\Services\Transform_3.btm 對應檔案。

如何使用此範例

使用下列程式來建置和執行 BAM 端對端範例:

建置並初始化此範例

  1. 以系統管理員身分開啟命令提示字元,然後執行< 範例路徑 >\BAM\BAMEndToEnd\Setup.bat。 Setup.bat 建置並初始化此範例的 BAM 基礎結構。 讓命令提示字元保持開啟。

  2. 建立追蹤設定檔,將 Orchestration1、Orchestration2 和 Orchestration3 對應至 BAM 活動。 (因為建立追蹤設定檔是複雜的程式,所以詳細的指示位於稱為 建立追蹤設定檔的個別程式中。本檔稍後會出現此程式。)

  3. 部署您在上一個步驟中建立的追蹤設定檔 BamEndToEnd.btt。 在命令提示字元中< ,變更為 Samples Path >\BAM\BamEndToEnd 目錄。 若要部署追蹤設定檔,請輸入下列程式程式碼,然後按 Enter

    “<BizTalkInstallationPath>\Tracking\bttdeploy” BamEndToEnd.btt

    如何使用追蹤設定檔管理公用程式部署追蹤設定檔 提供詳細資訊。

    重要

    您可以忽略 ContinuationID Orch1_沒有相符接續的訊息。 這是預期訊息,因為名為 Orch1_ 的接續是在管線元件中定義,而不是在追蹤設定檔中定義。

執行這個範例

< 範例路徑 >\BamEndToEnd\InputMessage.xml 檔案複製到Samples Path > \BamEndToEnd\Input 資料夾 <。 幾秒鐘之後,訊息會從 Input 資料夾消失,而輸出訊息會出現在< Samples Path >\BamEndToEnd\Output 資料夾中。

檢視 BAM 資料

  1. 開啟 [SQL Server Management Studio]。

  2. 在SQL Server Management Studio中,依序展開伺服器、[資料庫]、[BAMPrimaryImport] 和 [資料表]。

  3. 以滑鼠右鍵按一下 [dbo.bam_EndToEndActivity_Completed],然後按一下 [ 開啟資料表]。 如果您使用 SQL Server,請按一下[選取前 1000 個數據列]。

    bam_EndToEndActivity_Completed資料表的內容會顯示在右窗格中。 資料表中的每個資料列都代表已完成的 EndToEndActivity 活動。

重新執行此範例

  1. 以系統管理員身分開啟命令提示字元,然後變更為< Samples Path >\BAM\BamEndToEnd 目錄。 輸入下列這一行:

    “C:\Program Files\Microsoft BizTalk Server <version>\Tracking\bttdeploy” BamEndToEnd.btt /remove

    注意

    如果您未將BizTalk Server安裝到 C 磁片磁碟機,請將 「C」 取代為您安裝BizTalk Server的磁碟機號。

  2. 執行< 範例路徑 >\BAM\BAMEndToEnd\Cleanup.bat。 Cleanup.bat 移除此範例的 BAM 基礎結構。

  3. 執行本主題中 建置和初始化此範例 一節中的步驟。

建立追蹤設定檔

  1. 按一下[開始],指向[所有程式],指向[Microsoft BizTalk Server 20xx]。 以滑鼠右鍵按一下 [追蹤設定檔編輯器],然後 以系統管理員身分執行

  2. 在 [ 追蹤設定檔編輯器 ] 視窗的左窗格中, 按一下 [按一下這裡] 以匯入 BAM 活動定義

  3. 在 [匯入 BAM 活動定義] 對話方塊的[BAM 活動定義名稱] 區段中,選取[EndToEndActivity],然後按一下 [確定]。

  4. 在 [ 追蹤設定檔編輯器 ] 視窗的右窗格中, 按一下 [按一下這裡] 以選取事件來源

  5. 在 [選取事件來源父元件] 對話方塊的 [元件名稱] 區段中,選取[Microsoft.Samples.BizTalk.BamEndToEnd.Services],然後按 [下一步]。

  6. 在 [選取協調流程] 對話方塊的 [協調流程名稱] 區段中,選取[BamEndToEnd.Services.Orchestration1],然後按一下 [確定]。

  7. 在 [ 追蹤設定檔編輯器] 視窗的左窗格中,以滑鼠右鍵按一下 [EndToEndActivity],然後按一下 [ 新增 ContinuationID]。 將新的接續識別碼 命名為 Orch1_。 重複此步驟,以建立兩個名為 Orch2_Orch3_ 的接續識別碼。

  8. 以滑鼠右鍵按一下 [EndToEndActivity],然後按一下 [ 新增接續]。 將新的接續 命名為 Orch2_。 重複此步驟,以建立名為 Orch3_的另一個接續。

  9. 以滑鼠右鍵按一下 Receive1 圖形,然後按一下 [內容屬性架構]。

  10. 捲動至 [內容屬性名稱] 清單的結尾,然後按兩下 BAMEndToEnd.Services.PropertySchema.DocumentID

  11. 展開[ < 架構 >],然後將右窗格中的DocumentID拖曳至左窗格中Orch1_

  12. 按一下具有資料夾和向上箭號) 兩次的資料夾 (圖示,以顯示協調流程。

  13. 將右窗格中的 Receive1 圖形拖曳至左窗格中的 SBegin1

  14. 將右窗格中 的StartOrchestration_1 圖形拖曳至左窗格中的 SEnd1

  15. 以滑鼠右鍵按一下 StartOrchestration_1 圖形,然後按一下 [ 訊息承載架構]。

  16. 按兩下 [ 訊息 ] 資料行中包含 「Message_2」 值的資料列,然後在 [Part ] 資料行中按一下值 「MessageBody」。

    77fbc444-46cf-4d45-8e9c-c330da7ba7d1 的顯示 message_2

  17. 展開 [架構2],然後將右窗格中的 [Data2 ] 拖曳至左窗格中的 [Data1 ]。

  18. 按一下 [選取事件來源],然後按一下 [ 選取內容屬性]。

  19. 捲動至 [內容屬性名稱] 清單的結尾,然後按兩下 BAMEndToEnd.Services.PropertySchema.DocumentID

  20. 展開[ < 架構 >],然後將DocumentID拖曳至左窗格中Orch2_接續。

    注意

    請勿將Orch2_接續與Orch2_接續識別碼混淆。 代表接續識別碼的圖示包含接續識別碼 ) 的索引鍵 (圖示,而代表接續的圖示不包含接續) 的索引鍵 (圖示。

  21. 按一下 [選取事件來源],然後按一下 [ 選取協調流程排程]。

  22. 在 [選取事件來源父元件] 對話方塊的 [元件名稱] 區段中,選取[Microsoft.Samples.BizTalk.BamEndToEnd.Services],然後按 [下一步]。

  23. 在 [選取協調流程] 對話方塊的 [協調流程名稱] 區段中,選取[BamEndToEnd.Services.Orchestration2],然後按一下 [確定]。

  24. 以滑鼠右鍵按一下 ConstructMessage_1 圖形,然後按一下 [ 訊息承載架構]。

  25. 按兩下 [訊息 ] 資料行中含有 「Message_3」 值的資料列,然後在 [ 元件 ] 資料行中按兩下包含 「BAMPart」 值的資料列。

  26. 展開 BAMPart,然後將右窗格中的 DocumentID 拖曳至左窗格中 的Orch2_ 接續識別碼。

    注意

    請勿將Orch2_接續與Orch2_接續識別碼混淆。 代表接續識別碼的圖示包含接續識別碼 ) 的索引鍵 (圖示,而代表接續的圖示不包含接續) 的索引鍵 (圖示。

  27. 按一下具有資料夾和向上 (箭號 ) 兩次的資料夾圖示,以顯示協調流程。

  28. 將右窗格中 的ConstructMessage_1 圖形拖曳至左窗格中的 SBegin2

  29. 將右窗格中 的Send_1 圖形拖曳至左窗格中的 SEnd2

  30. 以滑鼠右鍵按一下 Send_1 圖形,然後按一下 [ 訊息承載架構]。

  31. 按兩下 [ 訊息 ] 資料行中包含 「Message_3」 值的資料列,並在 Part 資料行中按兩下 「MessageBody」 值。

  32. 展開 [架構3],然後將右窗格中的 [Data3 ] 拖曳至左窗格中的 [Data2 ]。

  33. 從右窗格上方的下拉式清單中,選取 [訊息承載架構]。

  34. 按兩下 [訊息 ] 資料行中含有 「Message_3」 值的資料列,然後在 [ 元件 ] 資料行中按兩下包含 「BAMPart」 值的資料列。

  35. 展開 BAMPart,然後將右窗格中的 DocumentID 拖曳至左窗格中 的Orch3_ 接續。

    注意

    請勿將Orch3_接續與Orch3_接續識別碼混淆。 代表接續識別碼的圖示包含接續識別碼 ) 的索引鍵 (圖示,而代表接續的圖示不包含接續) 的索引鍵 (圖示。

  36. 按一下 [選取事件來源],然後按一下 [ 選取協調流程排程]。

  37. 在 [選取事件來源父元件] 對話方塊的 [元件名稱] 區段中,選取[Microsoft.Samples.BizTalk.BamEndToEnd.Services],然後按 [下一步]。

  38. 在 [選取協調流程] 對話方塊的 [協調流程名稱] 區段中,選取[BamEndToEnd.Services.Orchestration3],然後按一下 [確定]。

  39. 以滑鼠右鍵按一下 Receive1 圖形,然後按一下 [ 訊息承載架構]。

  40. 按兩下 [訊息 ] 資料行中含有 「Message_3」 值的資料列,然後在 [ 元件 ] 資料行中按兩下包含 「BAMPart」 值的資料列。

  41. 展開 BAMPart,然後將右窗格中的 DocumentID 拖曳至左窗格中 的Orch3_ 接續識別碼。

    注意

    請勿將Orch3_接續與Orch3_接續識別碼混淆。 代表接續識別碼的圖示包含接續識別碼 ) 的索引鍵 (圖示,而代表接續的圖示不包含接續) 的索引鍵 (圖示。

  42. 按一下具有資料夾和向上箭號) 兩次的資料夾 (圖示,以顯示協調流程。

  43. 將右窗格中的 Receive1 圖形拖曳至左窗格中的 SBegin3

  44. 將右窗格中 的Send_1 圖形拖曳至左窗格中的 SEnd3

  45. 以滑鼠右鍵按一下 Send_1 圖形,然後按一下 [ 訊息承載架構]。

  46. 展開 [架構3],然後將右窗格中的 [Data3 ] 拖曳至左窗格中的 [Data3 ]。

  47. 以滑鼠右鍵按一下Orch2_接續下方的DocumentID,然後按一下[設定埠對應]。

    注意

    請勿將Orch2_接續與Orch2_接續識別碼混淆。 代表接續識別碼的圖示包含接續識別碼 ) 的索引鍵 (圖示,而代表接續的圖示不包含接續) 的索引鍵 (圖示。

  48. 在 [ 選取埠 ] 對話方塊的 [ 選取埠 ] 區段中,按一下 [BamEndToEnd_ReceivePort],按一下大於符號 () > ,然後按一下 [ 確定]。

  49. 將追蹤設定檔儲存至< Samples Path >\BAM\BamEndToEnd\BamEndToEnd.btt。

重要詳細資料

追蹤設定檔不支援管線。 不過,在管線元件中呼叫 BeginActivity 與在協調流程中使用 ActivityID 相同。 EnableContinuation的呼叫與在協調流程中使用接續相同。

另請參閱

商務活動監控 (BizTalk Server Samples 資料夾)