Extending Mapper (BizTalk Server サンプル)
Extending Mapper サンプルは、BizTalk マッパーの使用方法および拡張方法を示します。 このサンプルには、複数の BizTalk Server マップ ファイル (.btm) が含まれており、それぞれが BizTalk マッパーの異なる特徴を示しています。
このサンプルの処理
Extending Mapper サンプルは、コンテンツ ベースのルーティング (CBR) を使用し、オーケストレーションは使用しません。 サンプル送信ポートに対してフィルターを指定すると、サンプル送信ポートがサンプル受信ポートに直接接続されます。 送信ポートに対してマップが指定され、その送信ポートが処理済みのドキュメントに適用されます。
このサンプルの場所
<Samples Path>\XmlTools\ExtendingMapper
次の表は、このサンプルのファイルとその目的を示しています。
ファイル | 説明 |
---|---|
MapperClassLibrary\AssemblyInfo.cs、MapperClassLibrary\MapperClassLibrary.csproj、MapperClassLibrary\MapperHelper.cs、MapperClassLibrary\MapperClassLibrary.sln | Microsoft® Visual Studio® プロジェクト ファイルおよび Visual C#® ソース ファイルです。 |
Cleanup.bat | アセンブリを展開解除し、グローバル アセンブリ キャッシュ (GAC) から削除するために使用されます。 |
Destination.xsd | スキーマ ファイルです。 |
ExtendingMapper.btproj、ExtendingMapper.sln | このサンプルの BizTalk プロジェクト ファイルとソリューション ファイルです。 |
ExtendingMapper.xml | ソース XML です。 |
ExtendingMapperBinding.xml | バインド XML です。 |
ExternalAssembly.xml | 外部アセンブリ XML です。 |
OverridingMapXslt.btm | マップ ファイル。 |
OverridingMapXslt.xml | マップ XML をオーバーライドします。 |
OverridingMapXslt.xslt | マップ スタイルシートをオーバーライドします。 |
Scriptor_CallExternalAssembly.btm | サンプル マップ ファイルです。 |
Scriptor_GlobalVariableInInlineScript.btm | サンプル マップ ファイルです。 |
Scriptor_InlineScripts.btm | サンプル マップ ファイルです。 |
Scriptor_InlineXslt.btm | サンプル マップ ファイルです。 |
Scriptor_InlineXsltCallingExternalAssembly.btm | サンプル マップ ファイルです。 |
Scriptor_XsltCalltemplate.btm | サンプル マップ ファイルです。 |
Setup.bat | サンプルをビルドおよび初期化するために使用されます。 |
Source.xsd | スキーマ ファイルです。 |
このサンプルのビルドと初期化
次の手順を使用して、Extending Mapper サンプルをビルドおよび初期化します。
このサンプルを作成および初期化するには
コマンド ウィンドウで、ディレクトリ (cd) を次のフォルダーに変更します。
<Samples Path>\XmlTools\ExtendingMapper
ファイル Setup.bat を実行すると、次のアクションが実行されます。
このサンプルで使用される入力 (\In) フォルダーと出力 (\Out) フォルダーを作成します。
このサンプル用に Visual Studio プロジェクトをコンパイルおよび展開します。
BizTalk Server の受信場所、送信ポート、および受信ポートを作成しバインドします。
Scriptor_CallExternalAssembly.btm マップまたは Scriptor_InlineXsltCallingExternalAssembly.btm マップを使用する場合は、Visual Studio で ExtendingMapper.sln を開き、次の変更を行います (それ以外の場合は、手順 3. に進みます)。
ソリューション エクスプローラーで、Scriptor_CallExternalAssembly.btm を開きます。
マッパー グリッドで、スクリプト Functoid を選択します。
プロパティ グリッドで、 Script プロパティを選択し、省略記号 (...) ボタンをクリックして Functoid スクリプトを構成します。
[ スクリプト Functoid の構成 ] ダイアログ ボックスで、[ スクリプト Functoid の構成] を選択し、次を指定します。
設定対象 次の値に設定 スクリプトの種類 外部アセンブリ スクリプト アセンブリ Microsoft.Samples.BizTalk.ExtendingMapper.MapperClassLibrary スクリプト クラス Microsoft.Samples.BizTalk.ExtendingMapper.MapperHelper Script メソッド MyConcat Visual Studioの [ファイル ] メニューから [ 保存] を選択してマップ ファイルへの変更を保存し、ソリューションを閉じます。
任意のキーを押して Setup.bat を続行します。
重要
Scriptor_InlineXsltCallingExternalAssembly.btm を使用する場合、ExternalAssembly.xml ファイルを編集する必要があります。 BizTalk は ExternalAssembly.xml を使用して、マッパー拡張オブジェクトの登録済み名前空間を .NET アセンブリにマップします。 依存アセンブリはその完全修飾名 (自動的に生成される公開キー トークンを含む) で参照されるため、この値を更新する必要があります。 Scriptor_InlineXsltCallingExternalAssembly.btm を使用しない場合は、手順 a. ~ e. を実行する必要はありません。
Windows エクスプローラーで、Windows フォルダー>\assembly\ に<移動します。
[Microsoft.Samples.BizTalk.ExtendingMapper.MapperClassLibrary] を右クリックし、[プロパティ] を選択します。
公開キー トークン値をコピーします。
テキスト エディターで、Samples Path>\XML Tools\ExtendingMapper\ExternalAssembly.xml を開きます<。
AssemblyName="Microsoft.Samples.BizTalk.ExtendingMapper.MapperClassLibrary, Version=1.0.0.0, Culture=neutral, PublicKeyToken=68496d20c737d84b"属性を選択し、PublicKeyToken 値を手順 c でコピーした公開キー トークン値に置き換えます。
ExternalAssembly.xml を保存して閉じます。
Note
このサンプルを実行する前に、ビルド処理および初期化処理でエラーが報告されていないことを確認してください。
送信ポートの構成、参加、開始を行うには
[スタート] をクリックし、[すべてのプログラム] を選択し、[Microsoft BizTalk Server] を選択してから、[BizTalk Server管理] を選択します。
BizTalk Server管理コンソールで、[BizTalk Server管理] をクリックして展開し、クリックして BizTalk グループ [<servername>:<management database>] を展開し、クリックして [アプリケーション] を展開します。
クリックして [ExtendingMapperApplication] を展開し、[ 送信ポート] をクリックします。
右側のウィンドウで、[ 送信ポート] を右クリックし、[ プロパティ] をクリックします。
[ ExtendingMapperSP – 送信ポートのプロパティ ] ダイアログ ボックスで、[ 送信マップ ] ページをクリックします。
[ マップ ] 列で、ドロップダウン リストから必要なマップを選択し、[OK] をクリック します。 次の表は、これらのマップについてまとめたものです。
"適用するマップ" プロパティ 説明 Microsoft.Samples.BizTalk.ExtendingMapper. Scriptor_CallExternalAssembly この Functoid への入力パラメーターに基づいて、マップ内の スクリプト Functoid から外部の .NET アセンブリ内の関数を呼び出す方法を示します。 これは、マップ ファイルから処理ロジックを明確に分離するのに役立ちます。 このマップ ファイルは、このサンプルに付属しているアセンブリ MapperClassLibrary.dll を使用します。 Microsoft.Samples.BizTalk.ExtendingMapper. Scriptor_InlineScripts C#、Visual Basic.NET、JScript.NET などの .NET 言語 を 使用して、マップ ファイル内のスクリプト functoid 内に単純なインライン スクリプトを記述する方法を示します。 Microsoft.Samples.BizTalk.ExtendingMapper. Scriptor_GlobalVariableInInlineScript スクリプト Functoid のインライン スクリプトでグローバル変数 を使用する方法を 示します。 グローバル変数は通常、さまざまなスクリプト Functoid 間でマップ ファイル内の状態情報 を 維持するために使用されます。 Microsoft.Samples.BizTalk.ExtendingMapper. Scriptor_InlineXslt マップ内の Scripting Functoid 内で生のインライン XSLT を使用して、コピー先ドキュメント内に構造を構築する方法を示します。 他の Functoid を使用して BizTalk マッパーで行えない場合は常に、インライン XSLT を使用して Functoid を スクリプト 化して、コピー先ドキュメントの一部を構築できます。 Microsoft.Samples.BizTalk.ExtendingMapper. Scriptor_XsltCalltemplate マップ内のスクリプト functoid 内で XSLT 呼び出しテンプレートを使用して、変換先ドキュメントに構造 を作成する 方法を示します。 インライン XSLT よりも XSLT 呼び出しテンプレートの利点は、呼び出しテンプレートがパラメーターを受け取ることができるため、 Scripting Functoid への入力パラメーターに基づいて構造を作成できることです。 他の Functoid を使用して BizTalk マッパーで行えない場合は常に、インライン XSLT を使用して Functoid を スクリプト 化して、コピー先ドキュメントの一部を構築できます。 Microsoft.Samples.BizTalk.ExtendingMapper. Scriptor_InlineXsltCallingExternalAssembly マップ内のスクリプト functoid のインライン XSLT 内から外部 .NET アセンブリ を 呼び出す方法を示します。 BizTalk マッパー グリッドの カスタム拡張 XML プロパティを、呼び出す外部 .NET アセンブリの詳細を含むカスタム拡張ファイル ExternalAssembly_extxml.xml でオーバーライドする方法について説明します。 他の Functoid を使用してマッパー UI で行えない場合は常に、インライン XSLT を使用して Functoid の スクリプトを 使用して、コピー先ドキュメントの一部を構築できます。 Microsoft.Samples.BizTalk.ExtendingMapper. OverridingMapXslt BizTalk マッパー ファイルのコンパイル済み XSLT を、カスタム XSLT ファイルで完全にオーバーライドする方法を示します。 これを行うには、 カスタム XSL パスプロパティと、必要に応じて BizTalk マッパー グリッドの カスタム拡張 XML プロパティをオーバーライドします。 用意するカスタム XSLT ファイルは、実行時に使用するプロジェクトのコンパイル済み BizTalk Server アセンブリに含めます。 この場合、マップ ファイル (.btm) の内容は無視されます。 このマップ ファイルでは、それぞれカスタム XSL パスとカスタム拡張 XML プロパティに対して OverridingMapXslt.xslt と OverridingMapXslt.xml を使用します。
ソリューション エクスプローラーでマップ ファイルを検証できます。 その後、BizTalk マッパー グリッドの カスタム XSL パス プロパティを編集して使用できるテンプレート ファイルとして使用できます。 BizTalk マッパーを使用してこの XSLT を生成できない場合は、いつでもこのオプションを使用できます。
このサンプルの実行
次の手順を使用して、Extending Mapper サンプルを実行します。
このサンプルを実行するには
入力ファイル ExtendingMapper.xml を Samples Path>\XmlTools\ExtendingMapper\In の入力フォルダーにコピーします<。
ファイルがどのように変換され、Samples Path>\XmlTools\ExtendingMapper\Out フォルダーに<ルーティングされるかに注目してください。 実行される変換は、適用したマップに基づきます。