商務規則 Hello World1 (BizTalk Server 範例)
「商務規則 Hello World1」範例示範如何建立 BizTalk 規則集、將規則集儲存到檔案 (SampleRuleSet.xml)、載入規則集,以及依據一組事實範例執行該規則集。 範例規則集包含有關 XML 項目的簡單規則,以及做為規則定義內容的 .NET 物件 (屬性和成員)。
此範例的用途
這個範例會建立可執行檔,用來執行下面的一系列步驟:
呼叫 CreateRuleset 方法來建置一節中所述的規則集。
呼叫 SaveToFile 方法,示範如何將規則集儲存至檔案。
呼叫 LoadFromFile 方法,以示範從檔案載入規則集。
建構要執行規則集的範例事實。
針對範例事實執行規則集,產生螢幕輸出。
暫停,讓您檢查規則集檔案 SampleRuleStore.xml。
透過刪除規則集檔案進行清除,準備接續的範例執行。
可在何處找到此範例
< 範例路徑>\Business Rules\Business Rules Hello World1\
下表顯示此範例中的檔案,並描述其用途。
檔案 | Description |
---|---|
App.ico、AssemblyInfo.cs、BusinessRulesHelloWorld1.csproj、BusinessRulesHelloWorld1.sln | 這個範例所屬的專案、解決方案和相關檔案,可建立、儲存、載入和執行規則集。 |
HelloWorld1.cs | Visual C# 檔案,其中包含的方法用於示範建立規則集、儲存規則集到檔案中,以及從檔案載入規則集。 另外也包含周圍程式碼,用於呼叫這些方法,然後再執行所建立的規則集。 |
Cleanup.bat | 用來解除部署組件,並將這些組件從全域組件快取 (GAC) 移除。 移除傳送埠和接收埠。 視需要移除 Microsoft Internet Information Services (IIS) 虛擬目錄。 |
SampleDocumentInstance.xml | 範例輸入檔,與 SampleSchema.xsd 檔中定義的結構描述相符。 |
SampleSchema.xsd | 結構描述檔,定義簡單的結構描述,其中某個項目會由 Visual C# 檔 HelloWorld1.cs 中建立的規則集所參照。 |
Setup.bat | 用來建置和初始化此範例。 |
在 \MySampleLibrary 資料夾中: AssemblyInfo.cs、MySampleLibrary.csproj、MySampleLibrary.sln |
這個範例所屬的專案、解決方案和相關檔案,其提供定義所建立規則集參照之物件的類別。 |
在 \MySampleLibrary 資料夾中: MySampleLibraryClass.cs |
Visual C# 檔案,其中包含所建立規則之 IF 部分所參考的屬性,以及可在所建立規則的 THEN 部分中呼叫的方法。 |
建置和初始化此範例
請使用下列程序,建置和初始化「商務規則 Hello World1」範例。
若要建置並初始化這個範例
在命令視窗中,瀏覽至下列資料夾:
< 範例路徑>\Business Rules\Business Rules Hello World1\
執行檔案 Setup.bat,這會執行下列動作:
- 編譯及部署此範例的 Microsoft Visual Studio 專案。
注意
在嘗試執行此範例之前,您應該確認 BizTalk Server 沒有在建置和初始化程序期間報告任何錯誤。
注意
若您選擇不執行 Setup.bat 檔案就開啟和建置此範例中的專案,您必須先使用 .NET Framework Strong Name Utility (sn.exe) 建立強式名稱金鑰組。 使用此金鑰組簽署所產生的組件。
注意
若要復原 Setup.bat 所進行的變更,請執行 Cleanup.bat。 您必須先執行 Cleanup.bat 才能再度執行 Setup.bat。
執行此範例
請使用下列程序,執行「商務規則 Hello World1」範例。
執行此範例
在命令視窗中,瀏覽至下列資料夾:
< 範例路徑>\Business Rules\Business Rules Hello World1\bin\Debug\
在命令視窗中,輸入這個範例的可執行檔名稱 (BusinessRulesHelloWorld1.exe),然後按 ENTER。
注意
執行時,此範例會在 bin\Debug 資料夾中產生規則集檔案 SampleRuleStore.xml。 當可執行檔暫停時,是等候您按 ENTER 以完成作業,您可以檢查這個檔案的內容。 請記得先關閉檔案,再按下任何鍵完成作業。 否則,可執行檔可能無法刪除檔案,以準備接續的範例執行。
根據所建立規則集的本質,如果您使用提供的範例輸入檔執行此範例 SampleDocumentInstance.xml,其值為一 (1) ,您會看到下列輸出:
Creating a new ruleset ...
Saving ruleset to SampleRuleStore.xml ...
Loading ruleset ...
Asserting objects ...
Executing ...
MySampleBusinessObject Class -- MySampleMethod executed for object 2 with parameter 5
MySampleBusinessObject Class -- MySampleMethod executed for object 3 with parameter 5
Press any key to finish ...
注意
在上述程式碼和下列程式碼中,以粗體顯示的輸出是由 MySampleLibrary 資料夾中的檔案所定義的範例商務物件所產生的輸出,由規則集所參考。
如果您將範例輸入SampleDocumentInstance.xml檔中識別碼元素相關聯的值從一個 (1) 變更為兩個 (2) ,輸出會如下所示:
Creating a new ruleset ...
Saving ruleset to SampleRuleStore.xml ...
Loading ruleset ...
Asserting objects ...
Executing ...
MySampleBusinessObject Class -- MySampleMethod executed for object 1 with parameter 5
MySampleBusinessObject Class -- MySampleMethod executed for object 3 with parameter 5
Press any key to finish ...
在建構期間,您將不會取得 MySampleBusinessObject 類別中任何物件的輸出行,這些物件在其 MyValue 屬性設定為值 (期間,) 符合範例輸入檔中 識別碼 元素相關聯的值 SampleDocumentInstance.xml。
註解
在 CreateRuleset () 方法內以程式設計方式建立的規則會顯示:
IF
MySampleBusinessObject.MyValue 不等於 XML 檔中的 ID 元素值。
THEN
在此案例中,MySampleBusinessObject.MySampleMethod (int) ,硬式編碼為常數五 (5) 。 這個方法會產生開始 MySampleBusinessObject 類別的輸出行 –-。
這個規則取決於下列項目:
MySampleBusinessObject類別,具有名為MyValue的公用屬性,以及名為MySampleMethod的公用方法, (會採用整數參數) 。
XML 架構定義語言 (XSD) 架構,定義包含 ID 元素的 XML 檔。
您依據類別和結構描述定義規則,但在執行期間需要有相關類別的物件執行個體,以及相關結構描述的文件執行個體。 您要針對這些執行階段執行個體 (稱為事實) 評估規則。 在此範例中,事實是 MySampleBusinessObject 物件的多個實例,並以其 MyValue 屬性的不同值建構,以及包含 ID 元素值的已定義架構的單一 XML 實例。