Loans Processing Using Business Rules (BizTalk Server サンプル)
Loans Processing Using Business Rules サンプルは、オーケストレーション内で管理しているルール セットを使用する方法、および入力 (ファクトと呼ばれます) の組み合わせを使用して、処理中のドキュメント内のフィールドの設定値を計算する方法を示しています。 ファクトは、.NET ベースのアセンブリ呼び出しの結果、メッセージの XML から取得した値、またはデータベースから取得したデータです。 このサンプルでは、ルールを必要に応じて変更して、再展開の必要なしに後続の計算に影響を与える方法も示します。
このサンプルの処理
このサンプルでは、簡単なローン処理のシナリオでこれらの機能を示します。 BizTalk Server オーケストレーションは、XML メッセージ形式のローン申請 (ローン ケースともいう) を取得して処理します。 このオーケストレーションでは、ビジネス ルール エンジンを使用してルールに従って受信メッセージを評価し、ルール適用の結果を使用してメッセージを変更し、メッセージをファイルとして出力フォルダーに書き込みます。
このサンプルでは、処理中のメッセージを含む複数のソースからの事実に基づいて、処理されるメッセージの IncomeStatus、 CommitmentsStatus、 EmploymentStatus、 および ResidencyStatus 要素を 設定します。
このサンプルの場所
<サンプル パス>\ビジネス ルール\ビジネス ルールを使用したローン処理\
次の表は、このサンプルのファイルとその目的を示しています。
ファイル | 説明 |
---|---|
Case.xsd | 受信ローン申請 (ローン ケース) のスキーマ ファイルです。 |
Cleanup.bat | アセンブリを展開解除し、グローバル アセンブリ キャッシュ (GAC) から削除するために使用されます。 送信ポートと受信ポートが削除されます。 必要に応じて、Microsoft インターネット インフォメーション サービス (IIS) の仮想ディレクトリが削除されます。 |
Create_CustInfo_Table.sql | SQL Northwind サンプル データベースの CustInfo テーブルを作成するための SQL スクリプトです。 |
LoanProcessorBinding.xml | ポート バインドなどの自動セットアップに使用されます。 |
LoansProcessor.btproj、LoansProcessor.sln | このサンプルの BizTalk プロジェクト ファイルとソリューション ファイルです。 |
My Sample Service.odx | このサンプルの BizTalk Server オーケストレーションです。 |
sampleLoan.xml | サンプルの入力ファイルです。ファイルの XML 構造の末尾で、4 つの状態要素の値が空になっています。 |
Setup.bat | このサンプルをビルドおよび初期化するために使用されます。 |
\CreateRules フォルダーには、次のファイルが含まれます。 App.ico、AssemblyInfo.cs、Case.xsd、CreateLoanProcessingPolicy.csproj、CreateLoanProcessingPolicy.sln、WriteToBRL.cs |
プログラムによってセット内にルールを作成するアプリケーションを作成するために使う Visual C# プロジェクト、ソリューション、ソース、および関連ファイルです。 プログラムによってルール セットを作成する方法の例については、ソース ファイル WriteToBRL.cs を参照してください。 |
\myFactRetriever フォルダーには、次のファイルが含まれます。 AssemblyInfo.cs FactRetrieverForLoansProcessing.cs myFactRetriever.csproj myFactRetriever.sln |
SQL Server のサンプルの Northwind データベースにあらかじめ追加された CustInfo テーブルからの情報の取得に使用するアセンブリを作成するために使う Visual C# プロジェクト、ソリューション、ソース、および関連ファイルです。 |
このサンプルのビルドと初期化
コンピューターに Northwind データベースがインストールされていることを確認してください。
重要
このサンプルを実行するには、Northwind SQL Serverサンプル データベースが必要です。 ダウンロードするには、Microsoft SQL Server の Northwind と pubs のサンプル データベースに移動します。
コマンド ウィンドウで、次のフォルダーに移動します。
<サンプル パス>\ビジネス ルール\ビジネス ルールを使用したローン処理
次のアクションを実行するファイル Setup.bat を実行します。
GAC をクリーンアップして、このサンプルを前回実行したときに残ったデータを削除します。
ファクト取得プログラム myFactRetreiever.dll をコンパイルし、展開します。
SQL スクリプト ファイル Create_CustInfo_Table.sql を使用して、Northwind サンプル SQL データベースに CustInfo という名前のテーブルを追加します。
共有 SQL ルール ストアをクリーンアップして、このサンプルを前回実行したときに残ったデータを削除します。
ローン処理ルール セットの最新バージョン (1.0) を作成、公開し、展開します。
Note
BizTalk Server に用意されているビジネス ルール作成ツールを使用すると、プログラムによって設定されたルールを確認できます。
このサンプルで使用される入力 (In) フォルダーと出力 (Out) フォルダーを作成します。
このサンプルの残りの Visual Studio プロジェクト (このサンプルの調整に使用するオーケストレーションを含む BizTalk プロジェクトを含む) をコンパイルして展開します。
BizTalk Server の受信場所、送信ポート、および受信ポートを作成しバインドします。
Note
このサンプルでは、ポートの作成とバインド時に次の警告が表示されます。
Warning: Receive handler not specified for receive location "LoansProcessor_1.0.0.0_LoansProcessor.My_Sample_Service_Incoming_ReceiveLocation"; updating with first receive handler with matching transport type.
Warning: Host not specified for orchestration "LoansProcessor.My_Sample_Service"; updating with first available host.
これらの警告は、無視してもかまいません (インストールでの名前付け方法はユーザーによって異なる可能性があるため、ホスト名と受信ハンドラーはバインド ファイルから除外されています。)
受信場所を有効にし、送信ポートを開始します。
オーケストレーションを登録して開始します。
Note
- BizTalk ホスト名が BizTalkServerApplication でない場合は、適切なホスト名を反映するように Setup.bat ファイルおよび LoanProcessorBinding.xml ファイルを編集します。
- このサンプルを実行する前に、ビルドと初期化のプロセス中に BizTalk Server でエラーが報告されていないことを確認する必要があります。
- ファイル Setup.bat を実行せずにこのサンプルのプロジェクトを開いてビルドする場合は、まず、.NET Framework厳密名ユーティリティ (sn.exe) を使用して厳密な名前キー ペアを作成する必要があります。 このキー ペアは、生成されたアセンブリの署名に使用します。
- Setup.bat によって行われた変更を元に戻すには、Cleanup.bat を実行します。 Setup.bat を 2 回目に実行する場合は、その前に Cleanup.bat を実行してください。
このサンプルの実行
Loans Processing Using Business Rules サンプルを実行するには
sampleLoan.xml ファイルのコピーを \In フォルダーに貼り付けます。
[出力] フォルダーに作成された .xml ファイルを確認します。XML 構造体の末尾に、IncomeStatus、CommitmentsStatus、EmploymentStatus、および ResidencyStatus の 4 つの状態要素にデータが追加された入力 XML メッセージが含まれています。
ビジネス ルール作成ツールを使用してルール セット内のルールを変更し、変更されたルールを再展開できます。
ビジネス ルール作成ツールを使用してルール セット内のルールを変更するには
[スタート] ボタンをクリックし、[プログラム] をポイントし、[Microsoft BizTalk Server 20xx] をポイントして、[ビジネス ルール作成ツール] をクリックします。
Note
ユーザー アカウント制御 (UAC) をサポートするシステムでは、管理者特権を使用してこのツールを実行することが必要な場合があります。 これを行うには、アプリケーションを右クリックし、[ 管理者として実行] を選択します。
[SQL Server] ダイアログ ボックスで、[OK] をクリックしてルール ストアに接続します。
ポリシー エクスプローラーで、ノード LoanProcessing の下にある [バージョン 1.0 – デプロイ済み] ノードを右クリックし、[コピー] をクリックします。
[ LoanProcessing] を右クリックし、[ 貼り付け] をクリックします。
IncomeStatus、CommitmentsStatus、EmploymentStatus、および ResidencyStatus 要素の値が異なる方法で、ルールまたはアクションを変更します。 また、変更を選択したルールの否定部分 (基本的には Else 句) の値も変更してください。
次の表に、このサンプルで使用されるルール セットを示します。 特に断りのない限り、ファクトは受信 XML メッセージから取得されます。 文字列 (db) は、ファクトのソースであるデータベースを表します。
規則番号 規則名 説明 1 収入状態ルール IF BasicSalary + OtherIncome> 0
THEN IncomeStatus = Valid2 契約状態ルール IF ID == ID (db)
AND
IF CreditCardBalance (db)> 500
THEN CommitmentsStatus =
"Compute Commitments"3 雇用状態ルール IF EmploymentType |TimeInMonths> 18
THEN EmploymentStatus = Valid4 常駐状態ルール IF PlaceOfResidence |TimeInMonths> 18
THEN ResidencyStatus = Valid!1, !2, !3, !4 否定ルール ルール 1 ~ 4 で説明されている対応する条件の論理 NOT である条件。 結果のアクションは、設定されている文字列の変更です。 [バージョン 1.1(保存されていません)] ノードを右クリックし、[保存] をクリックします。
[バージョン 1.1] ノードを右クリックし、[発行] をクリックします。
[バージョン 1.1] ノードを右クリックし、[デプロイ] をクリックします。
共有 SQL Server ルール ストアに変更が反映されるまで、60 秒間待機します。
sampleLoan.xml ファイルのコピーを In フォルダーに貼り付けます。
[出力] フォルダーに作成された .xml ファイルを確認します。XML 構造体の末尾に、IncomeStatus、CommitmentsStatus、EmploymentStatus、および ResidencyStatus の 4 つの状態要素にデータが追加された入力 XML メッセージが含まれています。 これらの要素に追加されたデータは、手順 5. で行った変更により、前回の実行結果とは異なります。
説明
このサンプルの追跡情報を確認するには、ビジネス ルール エンジン展開ウィザードを使用して関連するルール セット (Loans Processing) をいったん展開解除し、再展開する必要があります。
このサンプルでは、ビジネス ルールを使用してオーケストレーション内のルールの形式でビジネス ポリシーを適用する方法を示しています。 ポリシーを変更し、このポリシーの変更を、オーケストレーション ソリューションを再コンパイルまたは再展開せずにオーケストレーション内で動的に反映する方法も示しています。
このサンプルへの入力ローン ケースは、次の構造の XML メッセージです。
Name
ID
Income
BasicSalary
OtherIncome
EmploymentType
TimeInMonths
PlaceOfResidence
TimeInMonths
CommitmentsStatus
IncomeStatus
EmploymentStatus
ResidencyStatus