次の方法で共有


マッパーの拡張 (BizTalk Server サンプル)

拡張マッパーのサンプルでは、BizTalk マッパーを使用して拡張する方法を示します。 このサンプルにはいくつかの BizTalk Server マップ ファイル (.btm) が含まれており、それぞれに BizTalk マッパーのさまざまな機能が示されています。

このサンプルの役割

拡張マッパー のサンプルでは、コンテンツ ベースのルーティング (CBR) が使用され、オーケストレーションは使用されません。 サンプル送信ポートでフィルターを指定することで、サンプルの受信ポートに直接接続されます。 マップは、処理されたドキュメントに適用される送信ポートで指定されます。

このサンプルを検索する場所

<サンプルのパス>\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 スキーマ ファイル。

このサンプルのビルドと初期化

拡張マッパー サンプルをビルドして初期化するには、次の手順に従います。

このサンプルをビルドして初期化するには

  1. コマンド ウィンドウで、ディレクトリ (cd) を次のフォルダーに変更します。

    <Samples Path>\XmlTools\ExtendingMapper

  2. 次のアクションを実行するファイル Setup.batを実行します。

    • このサンプルの入力 (\In) フォルダーと出力フォルダー (\Out) を作成します。

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

    • BizTalk Server の受信場所と送受信ポートを作成してバインドします。

      Scriptor_CallExternalAssembly.btm マップまたは Scriptor_InlineXsltCallingExternalAssembly.btm マップを使用する場合は、Visual Studio でExtendingMapper.slnを開き、次の変更を行います (それ以外の場合は手順 3 に進みます)。

    1. ソリューション エクスプローラーで、Scriptor_CallExternalAssembly.btm を開きます。

    2. マッパー グリッドで、スクリプトの Functoid を選択します。

    3. プロパティ グリッドで Script プロパティを 選択し、省略記号 (...) ボタンをクリックして Functoid スクリプトを構成します。

    4. [ スクリプト Functoid の構成 ] ダイアログ ボックスで、[ スクリプト Functoid の構成] を選択し、次を指定します。

      これを設定する これを行うには
      スクリプトの種類 外部アセンブリ
      スクリプト アセンブリ Microsoft.Samples.BizTalk.ExtendingMapper.MapperClassLibrary
      Script クラス Microsoft.Samples.BizTalk.ExtendingMapper.MapperHelper
      Script メソッド MyConcat
    5. Visual Studioの [ファイル ] メニューから [ 保存] を選択して変更をマップ ファイルに保存し、ソリューションを閉じます。

  3. 任意のキーを押して、Setup.batを続行します。

    Von Bedeutung

    Scriptor_InlineXsltCallingExternalAssembly.btm を使用する場合は、ExternalAssembly.xml ファイルを編集する必要があります。 ExternalAssembly.xml は、登録されたマッパー拡張オブジェクトの名前空間を .NET アセンブリにマップするために BizTalk によって使用されます。 依存アセンブリは完全修飾名 (自動的に生成される公開キー トークンを含む) によって参照されるため、この値を更新する必要があります。 Scriptor_InlineXsltCallingExternalAssembly.btm を使用しない場合は、手順aからeを完了する必要はありません。

  4. Windows エクスプローラーで、 <Windows フォルダー>\assembly\ に移動します。

    1. Microsoft.Samples.BizTalk.ExtendingMapper.MapperClassLibrary を右クリックし、[プロパティ] を選択します。

    2. 公開キー トークンの値をコピーします。

    3. テキスト エディターで、 <サンプル パス>\XML Tools\ExtendingMapper\ExternalAssembly.xmlを開きます。

    4. AssemblyName="Microsoft.Samples.BizTalk.ExtendingMapper.MapperClassLibrary, Version=1.0.0.0, Culture=neutral, PublicKeyToken=68496d20c737d84b"属性を選択し、PublicKeyToken 値を手順 c でコピーした公開キー トークン値に置き換えます。

    5. ExternalAssembly.xmlを保存して閉じます。

    このサンプルを実行する前に、ビルドおよび初期化プロセス中にエラーが報告されなかったことを確認する必要があります。

送信ポートを構成し、登録し、開始するには

  1. [ スタート] をクリックし、[ すべてのプログラム] を選択し、[ Microsoft BizTalk Server] を選択して、[ BizTalk Server 管理] を選択します。

  2. BizTalk Server 管理コンソールで、クリックして BizTalk Server 管理を展開し、クリックして BizTalk グループ [<servername>:<管理データベース>] を展開し、クリックして [ アプリケーション] を展開します。

  3. クリックして ExtendingMapperApplication を展開し、[ ポートの送信] をクリックします。

  4. 右側のウィンドウで、[ 送信ポート] を右クリックし、[ プロパティ] をクリックします。

  5. [ ExtendingMapperSP – 送信ポートのプロパティ ] ダイアログ ボックスで、[ 送信マップ ] ページをクリックします。

    [ マップ ] 列で、ドロップダウン リストから必要なマップを選択し、[OK] をクリック します。 マップについては、次の表で説明します。

    プロパティを適用するマップ 説明
    Microsoft.Samples.BizTalk.ExtendingMapper。 Scriptor_CallExternalAssembly この functoid への入力パラメーターに基づいて、マップ内の Scripting functoid から外部の .NET アセンブリ内の関数を呼び出す方法を示します。 これにより、すべての処理ロジックをマップ ファイルからクリーンに分離できます。 このマップ ファイルでは、このサンプルに付属するアセンブリ MapperClassLibrary.dll を使用します。
    Microsoft.Samples.BizTalk.ExtendingMapper。 スクリプター_インラインスクリプト C#、Visual Basic.NET、JScript.NET などの .NET 言語を使用して、マップ ファイル内の Scripting Functoid 内に単純なインライン スクリプトを記述する方法を示します。
    Microsoft.Samples.BizTalk.ExtendingMapper。 Scriptor_GlobalVariableInInlineScript Scripting Functoid のインライン スクリプトでグローバル変数を使用する方法を示します。 グローバル変数は、通常、さまざまなスクリプト Functoid 間でマップ ファイル内の状態情報 維持するために使用されます。
    Microsoft.Samples.BizTalk.ExtendingMapper。 Scriptor_InlineXslt マップ内の Scripting Functoid 内で生のインライン XSLT を使用して、変換先ドキュメント内に構造を構築する方法を示します。 BizTalk マッパーで他の Functoid 使用して行えない場合は常に、インライン XSLT を使用したスクリプト Functoid を使用して、コピー先ドキュメントの一部を構築できます。
    Microsoft.Samples.BizTalk.ExtendingMapper。 Scriptor_XsltCalltemplate マップ内のスクリプティング functoid 内で XSLT 呼び出しテンプレートを使用して、出力ドキュメントに構造を作成する方法を示します。 インライン XSLT よりも XSLT 呼び出しテンプレートの利点は、呼び出しテンプレートがパラメーターを受け取ることができるため、 Scripting Functoid への入力パラメーターに基づいて構造を作成できることです。 BizTalk マッパーで他の Functoid 使用して行えない場合は常に、インライン XSLT を使用したスクリプト Functoid を使用して、コピー先ドキュメントの一部を構築できます。
    Microsoft.Samples.BizTalk.ExtendingMapper。 Scriptor_InlineXsltCallingExternalAssembly マップ内の Scripting functoid のインライン XSLT 内から外部 .NET アセンブリを呼び出す方法を示します。 BizTalk マッパー グリッドの カスタム拡張 XML プロパティを、呼び出す外部 .NET アセンブリの詳細を含むカスタム拡張ファイル ExternalAssembly_extxml.xml でオーバーライドする方法について説明します。 他の Functoid を使用して Mapper 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 を生成できない場合は常に、このオプションに頼ることができます。

このサンプルの実行

拡張マッパー サンプルを実行するには、次の手順に従います。

このサンプルを実行するには

  1. 入力ファイル ExtendingMapper.xml を <Samples Path>\XmlTools\ExtendingMapper\In の入力フォルダーにコピーします。

  2. ファイルがどのように変換され、 <Samples Path>\XmlTools\ExtendingMapper\Out フォルダーにルーティングされるかに注目してください。 発生する変換は、適用したマップに基づいています。

こちらもご覧ください

XML ツール (BizTalk Server Samples フォルダー)