目標
このセクションでは、BizTalk Server ビジネス ルール エンジン (BRE) ポリシーを使用してメッセージ コンテキスト プロパティに基づいてメッセージ エンドポイントを決定し、BizTalk Server FILE アダプターを使用してメッセージをルーティングするスケジュールを作成する方法について説明します。
このハウツー トピックでは、次の手順を実行します。
メッセージの種類を評価するビジネス ルール ポリシーを作成します。
ビジネス ルール ポリシーを使用して動的にルーティングするスケジュール ルーティング スリップを作成します。
スケジュール テスト クライアント サンプル アプリケーションを使用して、スケジュールをテストします。
[前提条件]
このハウツー トピックの手順では、 開発アクティビティの前提条件を完了する必要があります。
ステップス
メッセージ コンテキスト プロパティを使用してメッセージをルーティングする BRE ポリシーを作成するには
タスク バーの [ スタート] をクリックし、[ すべてのプログラム] をポイントし、 BizTalk Server をポイントして、[ ビジネス ルールコンポーザー] をクリックします。
ポリシー エクスプローラーで、[ ポリシー] を右クリックし、[ 新しいポリシーの追加] をクリックします。 ポリシーに RouteBasedOnMessageType という名前を付けます。
北米の注文のルーティング規則を追加するには
RouteBasedOnMessageType ポリシーで、バージョン 1.0 (保存されていない) を右クリックし、[新しい規則の追加] をクリックします。 ルール SetNAOrderEndpoint に名前を付けます。
[ルール] ウィンドウで、[ 条件] を右クリックし、[ 述語] をポイントして、[ 等しい] をクリックします。
Facts Explorer で ESB.ContextInfo ボキャブラリを展開し、バージョン 1.0 を展開して、コンテキスト メッセージの種類ファクトを 条件 の argument1 ノードにドラッグします。
注
Microsoft BizTalk ESB Toolkit には、ルールの作成に使用できるいくつかのボキャブラリが含まれています。 これらの一部は、独自のボキャブラリに置き換えるか、拡張する必要があります。 たとえば、 DynamicRunTimeMaptypes ポリシーには、 GlobalBank サンプルで提供されるマップの定義があります。
argument2 ノードをクリックし、次のように入力します。http://globalbank.esb.dynamicresolution.com/northamericanservices/#OrderDoc
Facts Explorer で ESB.EndPointInfo ボキャブラリを展開し、バージョン 1.0 を展開して、エンドポイントの送信トランスポートの場所の設定 の定義を アクション にドラッグします。
空の文字列<>をクリックし、「C:\HowTos\Out\NorthAmerica%MessageID%.xml」と入力します。
Facts Explorer で、[ エンド ポイントの送信トランスポートの種類の設定 ] 定義を [アクション] にドラッグします。
Facts ExplorerでESB.TansportTypesボキャブラリを展開し、バージョン 1.0を展開してから、アダプター プロバイダーの定義を<empty string>にドラッグします。
[操作] ウィンドウで、[ アダプター プロバイダー ] ドロップダウン リストを展開し、[ ファイル] をクリックします。
ポリシーを発行して展開するには
ポリシー エクスプローラーの RouteBasedOnMessageType ポリシーで、 バージョン 1.0 (保存されていない) を右クリックし、[ 発行] をクリックします。
ポリシー エクスプローラーの RouteBasedOnMessageType ポリシーで、バージョン 1.0 - 発行済を右クリックし、展開をクリックします。
ESB 旅程ドメイン固有言語 (DSL) モデルを作成するには
Visual Studio で、C:\HowTos\Patterns\Patterns.sln を開きます。
ソリューション エクスプローラーで、 ItineraryLibrary プロジェクトを右クリックし、[ 追加] をポイントして、[ 新しいスケジュール] をクリックします。
[ 名前 ] ボックスに 「MessageType」と入力し、[ 追加] をクリックします。
スケジュールのプロパティを構成するには
Visual Studio で、 MessageType.itinerary のデザイン画面をクリックします。 [MessageType プロパティ] ウィンドウで、次のプロパティを構成します。
[ モデル エクスポーター ] ドロップダウン リストで、[ XML スケジュール エクスポーター] をクリックします。
[ エクステンダーの設定] セクションで、[ スケジュール XML ファイル ] プロパティの横にある省略記号ボタン (...) をクリックします。
[ XML ファイルの選択 ] ダイアログ ボックスの [ ファイル名 ] ボックスに「 C:\HowTos\Itineraries\MessageType」と入力し、[ 保存] をクリックします。
注
この手順では、スケジュールを XML としてローカル ファイルの場所にエクスポートできます。 スケジュール データベースではなく、ローカル ファイルの場所にスケジュールをエクスポートすると、ESB テスト クライアント アプリケーションを使用してスケジュールのテストが可能になります。 このプロセスは、このハウツー トピックの後半で完了します。
旅程の構造を定義するには
ツールボックスから、 On-Ramp モデル要素をデザイン サーフェイスにドラッグします。 OnRamp1 プロパティ ウィンドウで、次のプロパティを構成します。
[名前] プロパティをクリックし、「ReceiveOrders」と入力します。
[ エクステンダー ]ドロップダウン リストで、[ On-Ramp ESB エクステンダー]をクリックします。
BizTalk アプリケーションのドロップダウン リストで、Microsoft.Practices.ESB をクリックします。
[受信ポート] ドロップダウン リストで、[OnRamp.Itinerary] をクリックします。
ツールボックスから、 Itinerary Service モデル要素をデザインサーフェイスにドラッグし、 On-Ramp モデル要素の右側に配置します。 [ ItineraryService1 プロパティ] ウィンドウで、次のプロパティを構成します。
Name プロパティをクリックし、「BreRoute」と入力します。
[ スケジュール サービス エクステンダー ] ドロップダウン リストで、[ メッセージング エクステンダー] をクリックします。
注
このプロパティは、プロセスがパイプライン (メッセージング) で実行されることを定義します。 または、プロセスがオーケストレーションで行われる場合は、 スケジュール サービス エクステンダー プロパティを オーケストレーション エクステンダーに設定します。
[コンテナー] ドロップダウン リストで、[ReceiveOrders] を展開し、[受信ハンドラー] をクリックします。
[ サービス名 ] ドロップダウン リストで、[ Microsoft.Practices.ESB.Services.Routing] をクリックします。
BreRoute モデル要素のリゾルバー コレクションを右クリックし、[新しいリゾルバーの追加] をクリックします。 [ 競合回避モジュール 1 のプロパティ] ウィンドウで、次のプロパティを構成します。
Name プロパティをクリックし、「ByMessageType」と入力します。
解決モジュールの実装 ドロップダウンリストで、Bre Resolver Extension をクリックします。
[ ポリシー ] ドロップダウン リストで、[ RouteBasedOnMessageType v 1.0] をクリックします。
ツールボックスで、[ コネクタ] をクリックします。 ReceiveOrders モデル要素から BreRoute モデル要素に接続をドラッグします。
ツールボックスから オフランプ モデル要素をデザインサーフェスにドラッグし、BreRoute モデル要素の右側に配置します。 [OffRamp1 プロパティ] ウィンドウで、次のプロパティを構成します。
Name プロパティをクリックし、「SendBasedOnType」と入力します。
[ エクステンダー ] ドロップダウン リストで、[ ESB エクステンダーOff-Ramp クリックします。
BizTalk アプリケーションのドロップダウン リストで、[GlobalBank.ESB] をクリックします。
[送信ポート] ドロップダウン リストで、[DynamicResolutionOneWay] をクリックします。
ツールボックスから、 Itinerary Service モデル要素をデザインサーフェイスにドラッグし、 BreRoute モデル要素と SendBasedOnType モデル要素の間に配置します。 [ ItineraryService1 プロパティ] ウィンドウで、次のプロパティを構成します。
Name プロパティをクリックし、「SendPortFilter」と入力します。
Itinerary Service Extenderのドロップダウン リストで、エクステンダーOff-Rampをクリックします。
[オフランプ] ドロップダウン リストで、[SendBasedOnType] を展開し、[送信ハンドラー] をクリックします。
ツールボックスで、[ コネクタ] をクリックします。 接続を BreRoute モデル要素から SendPortFilter モデル要素にドラッグします。
ツールボックスで、[ コネクタ] をクリックします。 接続を SendPortFilter モデル要素から SendBasedOnType モデル要素にドラッグします。
スケジュール テスト クライアントで使用するモデルをエクスポートするには
Visual Studio で、 MessageType スケジュールのデザイン画面を右クリックし、[ モデルのエクスポート] をクリックします。
注
スケジュールの XML バージョンが Visual Studio で開きます。
すべてのプロジェクト成果物を保存します。
Windows エクスプローラーで、[C:\HowTos\Itineraries and notice the creation of your itinerary XML (MessageType.xml] を参照します。
旅程をテストするには
開発アクティビティの前提条件 (C:\HowTos\ESB.Itinerary.Test.exe - ショートカット) で作成したショートカットを使用して、Itinerary Test Client サンプル アプリケーションを開きます。
スケジュール テスト クライアントで、[ WCF サービスの使用 ] チェック ボックスをオフにし、[ スケジュールの読み込み] をクリックします。
[ スケジュール ファイルを開く ] ダイアログ ボックスで、C:\HowTos\Itineraries に移動します。 MessageType.xmlを選択し、[開く] をクリックして旅程を読み込みます。
[ OK] を クリックして、 スケジュールが正常に読み込まれたメッセージを クリアします。
スケジュール テスト クライアントで、[ メッセージの読み込み ] ボックスの横にある省略記号ボタン (...) をクリックします。
[ 読み込む XML ドキュメントの選択 ] ダイアログ ボックスで、C:\HowTos を参照します。 NAOrderDoc.xml選択し、[開く] をクリックしてテスト メッセージを読み込みます。
[ 要求の送信] ボタンをクリックします。 テストが完了したら、[ OK] をクリックして、表示される確認を閉じます。
Windows エクスプローラーで、C:\HowTos\Out\ に移動します。 NorthAmerica%MessageID%.xml メッセージがディレクトリに書き込まれたことを確認します。
その他のリソース
詳細については、次の関連項目を参照してください。