CustomComponent (BizTalk Server サンプル)
CustomComponent サンプルは、ストリームされたメッセージを変更するカスタム パイプライン コンポーネントを作成して使用する方法を示します。 このサンプルは、パイプライン デザイナにおけるカスタム パイプライン コンポーネントの構成方法も示します。
このサンプルの処理
このサンプルは、入力メッセージの前または後に文字列を追加するカスタム パイプライン コンポーネントを実装します。 BizTalk Server はストリーミング モードでメッセージを処理します。そのため、メッセージ全体がメモリに読み込まれることはありません。 カスタム パイプライン コンポーネントは、以下の順序で処理を実行します。
BizTalk が、特定のフォルダにあるファイルからテキスト メッセージを取り出します。
テキスト メッセージは、カスタム パイプライン コンポーネント FixMsg が含まれる受信パイプラインを通じて送信されます。 このコンポーネントを、メッセージの先頭に文字列を挿入するように構成します。
処理後のテキスト メッセージは、カスタム パイプライン コンポーネント FixMsg が含まれる送信パイプラインを通じて送信されます。 このコンポーネントを、メッセージの最後に文字列を追加するように構成します。
BizTalk Server は、特定のフォルダ内のファイルにテキスト メッセージを書き込みます。
このサンプルの場所
<サンプル パス>\Pipelines\CustomComponent\
次の表は、このサンプルのファイルとその目的を示しています。
ファイル | 説明 |
---|---|
Cleanup.bat | アセンブリを展開解除し、グローバル アセンブリ キャッシュ (GAC) から削除するために使用されます。 送信ポートと受信ポートが削除されます。 必要に応じて、Microsoft インターネット インフォメーション サービス (IIS) の仮想ディレクトリが削除されます。 |
Input.txt | サンプル入力ファイルです。 |
Setup.bat | このサンプルをビルドおよび初期化するために使用されます。 |
\FixMsg フォルダー内のファイル: AssemblyInfo.cs、FixMsg.csproj、FixMsg.sln |
このサンプルのカスタム パイプライン コンポーネント部分のプロジェクト、ソリューション、アセンブリ情報ファイルです。 |
\FixMsg フォルダー内のファイル: FixMsg.cs |
パイプライン コンポーネント インターフェイスを実装します。 |
\FixMsg フォルダー内のファイル: FixMsgStream.cs |
System.IO.Stream クラスのラッパーを実装し、データのストリーム処理を可能にします。 |
\FixMsg フォルダー内のファイル: FixMsgDescription.cs |
パイプライン デザイナ内でコンポーネント UI リソースへのアクセスと表示を行うための手段を提供します。 |
\FixMsg フォルダー内のファイル: FixMsg.resx |
プロパティ記述、アイコン、エラー メッセージが格納されています。 |
\PipelineComponentSample フォルダー内のファイル: PipelineComponentSample.btproj、PipelineComponentSample.sln |
このサンプルの BizTalk プロジェクト部分のプロジェクト ファイルとソリューション ファイルです。 |
\PipelineComponentSample フォルダー内のファイル: PipelineComponentSampleBinding.xml |
ポート バインドなどの自動セットアップに使用されます。 |
\PipelineComponentSample フォルダー内のファイル: FixMsgReceivePipeline.btp、FixMsgSendPipeline.btp |
それぞれ受信パイプラインおよび送信パイプラインに対する、FixMsg カスタム パイプライン コンポーネントが含まれる BizTalk Server パイプラインです。 |
このサンプルのビルドと初期化
CustomComponent サンプルをビルドおよび初期化するには
コマンド ウィンドウで、次のフォルダーに移動します。
<サンプル パス>\Pipelines\CustomComponent
ファイル Setup.bat を実行すると、次のアクションが実行されます。
次のフォルダに、このサンプル用の入力 (In) フォルダと出力 (Out) フォルダを作成します。
<サンプル パス>\Pipelines\CustomComponent
このサンプルの Visual Studio プロジェクトをコンパイルして展開します。
BizTalk Server の受信場所、送信ポート、および受信ポートを作成しバインドします。
Note
このサンプルは、ポートを作成してバインドする際に、以下の警告を表示します。
Warning: Receive handler not specified for receive location "PCReceiveLocation"; updating with first receive handler with matching transport type.
Warning: Host not specified for orchestration "CustomComponent"; updating with first available host.
これらの警告は、無視してもかまいません (インストールでの名前付け方法はユーザーによって異なる可能性があるため、ホスト名と受信ハンドラーはバインド ファイルから除外されています。)
受信場所を有効にし、送信ポートを開始します。
Note
このサンプルを実行する前に、ビルドと初期化のプロセス中に BizTalk Server でエラーが報告されていないことを確認する必要があります。
Note
ファイル Setup.bat を実行せずにこのサンプルのプロジェクトを開いてビルドする場合は、まず、.NET Framework厳密な名前ユーティリティ (sn.exe) を使用して厳密な名前キーペアを作成する必要があります。 このキー ペアを使用して、結果のアセンブリに署名します。
Note
Setup.bat が行った変更を元に戻すには、BizTalk Server 管理 MMC コンソールでホスト インスタンスをまず停止し、再起動する必要があります。 次に、Cleanup.bat を実行します。 Setup.bat を 2 回目に実行する場合は、その前に Cleanup.bat を実行してください。
このサンプルの実行
CustomComponent サンプルを実行するには
テキスト ファイル Input1.txt のコピーを、フォルダ In に貼り付けます。
Out フォルダーに作成されたテキスト ファイルを確認します。このファイルには、ファイル Input.txt の内容が含まれており、先頭 (受信パイプライン) と末尾 (送信パイプライン) に追加のテキストが挿入されます。 このファイルの名前の形式は <MessageID>.xml で <、MessageID> はメッセージを一意に識別するために生成される GUID です。
説明
以下の手順を実行すると、パイプライン デザイナで構成済みのパイプラインを表示することができます。
ソリューション エクスプローラで ReceivePipeline.btp をダブルクリックし、パイプライン デザイナで受信パイプラインを開きます。 FixMsg コンポーネントが受信パイプラインの 検証 ステージに配置されていることを確認します。
デザイン画面の [検証 ] ステージで [FixMsg] コンポーネントをクリックします。 [プロパティ] ウィンドウで、パイプライン コンポーネントの構成プロパティを参照できます。 PrependData プロパティが Data に設定され、受信パイプライン文字列の先頭に追加されることを確認します。
ソリューション エクスプローラで SendPipeline.btp をダブルクリックし、パイプライン デザイナで送信パイプラインを開きます。 FixMsg コンポーネントが送信パイプラインの 事前アセンブル ステージに配置されていることを確認します。
デザイン画面の [事前アセンブル ] ステージで [FixMsg] コンポーネントをクリックします。 AppendData プロパティは、送信パイプライン文字列に追加する Data に設定されていることに注意してください。