共用方式為


商務規則 Hello World2 (BizTalk Server 範例)

商務規則 Hello World2 範例示範如何將 XML 規則集版本、發佈及部署至共用 SQL 規則存放區,以及如何使用商務規則架構所提供的 原則 物件來執行原則,藉此擴充商務規則 Hello World1 範例。 這個範例還會示範動態原則更新的實際操作。

注意

這個範例假設使用者在安裝產品期間一併安裝了「規則引擎更新服務」和「商務規則元件」(位於 [其他軟體] 節點下)。

注意

您可以使用 原則 物件,將規則引擎整合到任何獨立應用程式中。 Policy物件是管理多個規則引擎實例、從共用 SQL 存放區擷取和具現化規則集,以及擷取和發佈至主控應用程式的原則更新的抽象概念。

如需定義之規則集的基本資訊,以及此範例所建構的範例事實,請參閱 商務規則 Hello World1

此範例的用途

這個範例會建立可執行檔,用來執行下面的一系列步驟:

  1. 呼叫 CreateRuleset 方法來建置一節中所述的規則集。

  2. 呼叫 SaveToFile 方法,示範如何將規則集儲存至檔案。

  3. 呼叫 LoadFromFile 方法,示範如何從檔案載入規則集。

  4. 將規則集部署至共用 SQL 規則存放區。

  5. 使用 Policy 物件執行規則集,並使用商務規則 Hello World1 範例中使用的相同範例事實集。

  6. 暫停,可讓您以特定方式修改規則集檔案 SampleRuleStore.xml

  7. 使用 Policy 物件、現在修改的規則集,以及商務規則 Hello World1 範例中使用的相同範例事實集,再次執行規則集。

  8. 透過刪除規則集檔案和部署的規則集記錄進行清除,準備接著執行範例。

注意

如需此 SDK 中所有範例的重要資訊,請參閱 範例

可在何處找到此範例

< 範例路徑 >\商務規則\商務規則 Hello World2\

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

檔案 Description
App.ico、AssemblyInfo.cs、BusinessRulesHelloWorld2.csproj、BusinessRulesHelloWorld2.sln 這個範例所屬的專案、解決方案和相關檔案,可建立、儲存、載入、部署和執行規則集。
HelloWorld2.cs Visual C# 檔案,其中包含示範如何建立規則集、將規則集儲存至檔案、從檔案載入規則集、將規則集部署至共用的 Microsoft SQL Server 規則存放區,然後使用Policy物件執行規則集。
Cleanup.bat 用來解除部署組件,並將這些組件從全域組件快取 (GAC) 移除。 移除傳送埠和接收埠。 視需要移除 Microsoft Internet Information Services (IIS) 虛擬目錄。
SampleDocumentInstance.xml 範例輸入檔,與 SampleSchema.xsd 檔中定義的結構描述相符。
SampleSchema.xsd 結構描述檔,定義簡單的結構描述,其中某個元素會由 Visual C# 檔 Class1.cs 中的規則集參照。
Setup.bat 用來建置和初始化此範例。
在 \HelloWorld2Library 資料夾中:

AssemblyInfo.cs、HelloWorld2Library.csproj、HelloWorld2Library.sln
這個範例所屬的專案、解決方案和相關檔案,其提供定義所建立規則集參照之物件的類別。
在 \HelloWorld2Library 資料夾中:

HelloWorld2LibraryClass.cs
Visual C# 檔案,其中包含所建立規則之 IF 部分所參考的屬性,以及可在所建立規則的 THEN 部分中呼叫的方法。

建置和初始化商務規則 Hello World2 範例

  1. 在命令視窗中,瀏覽至下列資料夾:

    < 範例路徑 >\商務規則\商務規則 Hello World2\

  2. 執行檔案 Setup.bat,這會執行下列動作:

    • 編譯和部署這個範例的 Visual Studio 專案。

    注意

    在嘗試執行此範例之前,您應該確認 BizTalk Server 沒有在建置和初始化程序期間報告任何錯誤。

    注意

    若您選擇不執行 Setup.bat 檔案就開啟和建置此範例中的專案,您必須先使用 .NET Framework Strong Name Utility (sn.exe) 建立強式名稱金鑰組。 使用此金鑰組簽署所產生的組件。

    注意

    若要復原 Setup.bat 所進行的變更,請執行 Cleanup.bat。 您必須先執行 Cleanup.bat 才能再度執行 Setup.bat。

執行商務規則 Hello World2 範例

  1. 在命令視窗中,瀏覽至下列資料夾:

    < 範例路徑 >\商務規則\商務規則 Hello World2\bin\Debug\

  2. 在命令視窗中,輸入此範例的檔案名 (BusinessRulesHelloWorld2.exe) ,然後按 ENTER 鍵。

Hello World2 輸出

根據所建立規則集的本質,如商務規則 Hello World1的 [批註] 區段所述,如果您使用提供的範例輸入檔 SampleDocumentInstance.xml 來執行此範例,其值為一 (1) ,您會看到下列輸出:

Creating a new ruleset ...  
Saving ruleset to SampleRuleStore.xml ...  
Loading ruleset ...  
Deploying the ruleset ...  
Sleeping for 60 seconds (so that the deployed ruleset becomes effective) ...  
Grabbing the policy ...  
Executing the policy...  
MySampleBusinessObject Class -- MySampleMethod executed for object 2 with parameter 5  
MySampleBusinessObject Class -- MySampleMethod executed for object 3 with parameter 5  
The major version of the policy was: 1  
The minor version of the policy was: 0  
Press the ENTER to continue after updating the policy...  

注意

以粗體顯示的輸出是由範例商務物件所產生的輸出,由規則集參考之 HelloWorld2Library 資料夾中的檔案所定義。 此時,應用程式會進入這個狀態並等待。

執行範例的下一個部分包括使用 [商務規則編輯器] 變更商務規則。

使用商務規則編輯器變更商務規則

  1. 若要開啟商務規則編輯器,請按一下 [開始]、[所有程式]、[Microsoft BizTalk Server 20xx],然後按一下 [商務規則編輯器]。

    注意

    在支援使用者帳戶控制 (UAC) 的系統上,您可能需要使用系統管理權限來執行工具。 若要這樣做,請以滑鼠右鍵按一下應用程式,然後選取 [ 以系統管理員身分執行]。

  2. 如果SQL Server對話方塊出現在執行SQL Server的電腦上,請按一下 [確定] 以連線到規則存放區。

  3. [原則總管] 的 SampleRuleSet 節點下方,以滑鼠右鍵按一下節點 1.0 – 已部署,然後按一下 [ 複製]。

  4. 以滑鼠右鍵按一下 SampleRuleSet,然後按一下 [ 貼上 (原則版本])

  5. 您可以視需要變更規則條件和動作。 針對此程式,按一下1.1 版中的 rule1 (未儲存) 在右窗格中,以滑鼠右鍵按一下 [ 條件],然後按一下 [ 新增邏輯 NOT]。 將 邏輯 NOT 作業新增至 不等於 述詞相當於使用 Equal 述詞。

  6. 以滑鼠右鍵按一下節點 1.1 版 (未儲存) ,然後按一下 [ 儲存]。 再次按一下滑鼠右鍵,然後按一下 [ 發佈]。 以滑鼠右鍵按一下第三次,然後按一下 [部署]。

  7. 暫停的命令視窗會要求您在更新原則後按任意鍵繼續執行,請按任意鍵。

    從可執行檔 BusinessRulesHelloWorld2.exe 輸出 (假設您新增邏輯 Not 而變更規則) 的作業會繼續進行如下:

Sleeping for 60 seconds (so that the deployed ruleset becomes effective) ...         
Grabbing the policy ...         
Executing the policy...         
MySampleBusinessObject Class -- MySampleMethod executed for object 1 with parameter 5         
The major version of the policy was: 1         
The minor version of the policy was: 1         
Press ENTER to continue after updating the policy...         

請注意輸出如何變更:

  • MySampleMethod方法中的輸出行現在只會列印一次,而MyValue屬性等於 1 的MySampleBusinessObject類別實例,而不是MyValue屬性不等於 1 時的先前列印規則。

  • 現在,原則的次要版本號碼為 1。

另請參閱

商務規則 (BizTalk Server Samples 資料夾)