次の方法で共有


Business Rules Hello World2 (BizTalk Server サンプル)

ビジネス ルール Hello World2 サンプルは、共有 SQL ルール ストアに XML ルール セットをバージョン管理、発行、展開する方法と、ビジネス ルール フレームワークによって提供される Policy オブジェクトを使用してポリシーを実行する方法を示すことによって、ビジネス ルール Hello World1 サンプルを拡張します。 また、実行中のポリシーを動的に更新する方法についても示します。

Note

このサンプルでは、製品のインストール時に、ルール エンジン更新サービスおよびビジネス ルール コンポーネントがインストールされている ([追加ソフトウェア] ノードの下) ことを前提としています。

Note

Policy オブジェクトを使用して、ルール エンジンを任意のスタンドアロン アプリケーションに統合します。 Policy オブジェクトは、複数のルール エンジン インスタンスが管理され、ルール セットが共有 SQL ストアから取得およびインスタンス化され、ポリシーの更新が取得され、ホスティング アプリケーションに発行される抽象化です。

定義されているルール セットの基本情報と、このサンプルによって構築されたサンプルファクトについては、「 ビジネス ルール Hello World1」を参照してください。

このサンプルの処理

このサンプルでは、次の一連の手順を実行する実行可能ファイルを作成します。

  1. CreateRuleset メソッドを呼び出して、「解説」セクションで説明されている規則セットをビルドします。

  2. SaveToFile メソッドを呼び出して、ルール セットをファイルに保存する方法を示します。

  3. LoadFromFile メソッドを呼び出して、ファイルからルール セットを読み込む方法を示します。

  4. ルール セットを共有 SQL ルール ストアに展開します。

  5. Policy オブジェクトを使用し、ビジネス ルール Hello World1 サンプルで使用されているのと同じサンプル ファクトのセットを使用して、ルール セットを実行します。

  6. 一時停止します。これにより、特定の方法でルール セット ファイル SampleRuleStore.xml を変更できます。

  7. Policy オブジェクト、変更されたルール セット、およびビジネス ルール Hello World1 サンプルで使用されている同じサンプル ファクトのセットを使用して、規則セットを再度実行します。

  8. 後でこのサンプルを実行するための準備として、ルール セット ファイルおよび展開されたルール セット レコードを削除して、クリーンアップします。

Note

この SDK のすべてのサンプルに関する重要な情報については、「 サンプル」を参照してください。

このサンプルの場所

<サンプル パス>\ビジネス ルール\ビジネス ルール Hello World2\

次の表は、このサンプルのファイルとその目的を示しています。

ファイル 説明
App.ico、AssemblyInfo.cs、BusinessRulesHelloWorld2.csproj、および BusinessRulesHelloWorld2.sln このサンプルで、ルール セットの作成、保存、ロード、展開、実行を行う部分で使用するプロジェクト ファイル、ソリューション ファイル、その他の関連ファイルです。
HelloWorld2.cs ルール セットの作成、ファイルへのルール セットの保存、ファイルからのルール セットの読み込み、共有 Microsoft SQL Server ルール ストアへのルール セットの展開、Policy オブジェクトを使用したルール セットの実行を示すメソッドを含む Visual C# ファイル。
Cleanup.bat アセンブリを展開解除し、グローバル アセンブリ キャッシュ (GAC) から削除するために使用されます。 送信ポートと受信ポートが削除されます。 必要に応じて、Microsoft インターネット インフォメーション サービス (IIS) の仮想ディレクトリが削除されます。
SampleDocumentInstance.xml ファイル SampleSchema.xsd で定義されているスキーマに準拠したサンプル入力ファイルです。
SampleSchema.xsd 簡潔なスキーマを定義したスキーマ ファイルで、Visual C# ファイル Class1.cs で作成されたルール セットから参照される要素が含まれます。
Setup.bat このサンプルをビルドおよび初期化するために使用されます。
\HelloWorld2Library フォルダーに含まれるファイル:

AssemblyInfo.cs、HelloWorld2Library.csproj、HelloWorld2Library.sln
このサンプルで、作成したルール セットから参照されるオブジェクトを定義するクラスを提供する部分で使用するプロジェクト ファイル、ソリューション ファイル、その他の関連ファイルです。
\HelloWorld2Library フォルダーに含まれるファイル:

HelloWorld2LibraryClass.cs
作成されたルールの IF 部分で参照されるプロパティと、作成されたルールの THEN 部分で呼び出される可能性があるメソッドを含む Visual C# ファイル。

Business Rules Hello World2 サンプルをビルドして初期化するには

  1. コマンド ウィンドウで、次のフォルダーに移動します。

    <サンプル パス>\ビジネス ルール\ビジネス ルール Hello World2\

  2. ファイル Setup.bat を実行すると、次のアクションが実行されます。

    • このサンプルの Visual Studio プロジェクトをコンパイルして展開します。

    Note

    このサンプルを実行する前に、ビルドと初期化のプロセス中に BizTalk Server でエラーが報告されていないことを確認する必要があります。

    Note

    ファイル Setup.bat を実行せずにこのサンプルのプロジェクトを開いてビルドする場合は、まず、.NET Framework厳密な名前ユーティリティ (sn.exe) を使用して厳密な名前キーペアを作成する必要があります。 このキー ペアは、生成されたアセンブリの署名に使用します。

    Note

    Setup.bat によって行われた変更を元に戻すには、Cleanup.bat を実行します。 Setup.bat を 2 回目に実行する場合は、その前に Cleanup.bat を実行してください。

Business Rules Hello World2 サンプルを実行するには

  1. コマンド ウィンドウで、次のフォルダーに移動します。

    <サンプル パス>\ビジネス ルール\ビジネス ルール Hello World2\bin\Debug\

  2. コマンド ウィンドウで、このサンプル (BusinessRulesHelloWorld2.exe) のファイル名を入力し、Enter キーを押します。

Hello World2 の出力

作成されたルール セットの性質に基づいて、「 ビジネス ルール Hello World1」の「コメント」セクションで説明されているように、 指定 されたサンプル入力ファイル SampleDocumentInstance.xml でこのサンプルを実行すると、ID 要素に 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...  

Note

太字で表示される出力は、サンプル ビジネス オブジェクトによって生成される出力で、ルール セットが参照する HelloWorld2Library フォルダー内のファイルによって定義されます。 この時点で、アプリケーションはこの状態で待機します。

次のサンプルの実行部分では、ビジネス ルール作成ツールを使用してビジネス ルールを変更します。

ビジネス ルール作成ツールを使用してビジネス ルールを変更するには

  1. ビジネス ルール作成ツールを開くには、[スタート] をクリックし、[すべてのプログラム]、[Microsoft BizTalk Server 20xx] の順にクリックし、[ビジネス ルール作成ツール] をクリックします。

    Note

    ユーザー アカウント制御 (UAC) をサポートするシステムでは、管理者特権を使用してこのツールを実行することが必要な場合があります。 これを行うには、アプリケーションを右クリックし、[ 管理者として実行] を選択します。

  2. SQL Serverを実行しているコンピューターに [SQL Server] ダイアログ ボックスが表示された場合は、[OK] をクリックしてルール ストアに接続します。

  3. [ポリシー エクスプローラー] の [SampleRuleSet] ノードの下にあるノード [バージョン 1.0 – デプロイ済み] を右クリックし、[コピー] をクリックします。

  4. [ SampleRuleSet] を右クリックし、[ 貼り付け (ポリシー バージョン)] をクリックします。

  5. ルール条件とアクションは、必要に応じて変更できます。 この手順では、バージョン 1.1 の rule1 (保存されていません) をクリックします。 右側のウィンドウで [ 条件] を右クリックし、[ 論理 NOT の追加] をクリックします。 論理 NOT 演算を Not Equal to 述語に追加することは、Equal 述語を使用することと同じです。

  6. ノード Version 1.1(not saved)を右クリックし、[ 保存] をクリックします。 もう一度右クリックし、[ 発行] をクリックします。 3 回目を右クリックし、[ デプロイ] をクリックします。

  7. 一時停止しているコマンド ウィンドウ (ポリシーの更新後に任意のキーを押して続行するよう要求)、任意のキーを押します。

    論理否定を追加してルールを変更したとすると、実行可能ファイル BusinessRulesHelloWorld2.exe からの出力は、次のように継続されます。

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 と等しくない場合の印刷の前の規則ではなく、MyValue プロパティが 1 に等しい MySampleBusinessObject クラスのインスタンスに対して、1 回だけ出力されます。

  • ポリシーのマイナー バージョン番号は、1 になりました。

参照

ビジネス ルール (BizTalk Server サンプル フォルダー)