FlatFileSend (BizTalk Server サンプル)
FlatFileSend サンプルは、BizTalk Server を使用して、XML ファイルを同等のフラット ファイルに変換する方法を示します。
このサンプルの処理
このサンプルでは、FFInput フォルダを受信場所として構成します。 このフォルダにサンプル ファイル FlatFileSend_in.xml のようなファイルを置くと、このファイル内のメッセージが BizTalk Server によって、次の手順で処理されます。
BizTalk Server が、受信場所フォルダ FFInput の入力ファイルからメッセージを読み取ります。
メッセージが XML 受信パイプライン経由で受け渡されます。
MessageBox データベースで、メッセージが FILE 送信ポートにルーティングされます。このポートには、フラット ファイル アセンブラ コンポーネントを使用するよう構成された送信パイプラインがあります。 フラット ファイル アセンブラ コンポーネントは、フラット ファイル スキーマを使用して、XML メッセージを同等のフラット ファイル表現に変換します。
BizTalk Server が、変換されたメッセージを送信アダプタ フォルダ FFOutput のテキスト ファイルに書き込みます。
このサンプルのデザイン方法とその理由
サンプル メッセージはこのサンプル内の基本デザインの多くを示しています。 フラット ファイル メッセージは、カスタム送信パイプライン内のフラット ファイル アセンブラとフラット ファイル スキーマを使用してアセンブルする必要があります。 これらのデザイン要素と他のデザイン要素を次の表にまとめます。
デザイン要素 | 選択理由 |
---|---|
カスタム送信パイプライン | - カスタム パイプラインでは、フラット ファイル アセンブラーとフラット ファイル スキーマを使用して、インスタンス メッセージをフラット ファイル形式に変換します。フラット ファイル アセンブラー自体はパイプラインではなく、BizTalk Server管理コンソールで送信パイプラインを構成するときに使用できません。 |
フラット ファイル スキーマ | - XML スキーマとして同じレコードとフィールドの特性 (構造体を含む) をすべて定義し、XML インスタンス メッセージをフラット ファイル メッセージに変換するために必要なすべてのフラット ファイル特性を定義するメカニズムを提供します (またはその逆も同様)。 |
サブスクリプション フィルター | - サブスクリプション フィルターは、プロパティ フィールドに基づいて 1 つ以上の条件を満たすメッセージをキャプチャすることで、実際のルーティングを実行します。 |
XMLReceive | - 受信 XML メッセージの処理を実行します。 この例では、注文書の XML 表現が変換対象のメッセージとして使用されます。 |
これらの要素が組み合わされて、XML 形式の注文書メッセージを受信場所から受け入れ、フラット ファイル形式の注文書を送信場所に書き込むソリューションが作成されます。
このサンプルの場所
<Samples Path>\Pipelines\AssemblerDisassembler\FlatFileSend
次の表は、このサンプルのファイルとその目的を示しています。
ファイル | 説明 |
---|---|
Cleanup.bat | アセンブリの展開を解除し、グローバル アセンブリ キャッシュからアセンブリを削除するために使用されます。 送信ポートと受信ポートが削除されます。 必要に応じて、Microsoft インターネット インフォメーション サービス (IIS) の仮想ディレクトリが削除されます。 |
FlatFileSend.btproj、FlatFileSend.sln | このサンプルのプロジェクト ファイルとソリューション ファイルです。 |
FlatFileSendBinding.xml | ポート バインドなどの自動セットアップに使用されます。 |
FlatFileSend_in.xml | サンプル入力ファイルです。 |
PO.xsd | 送信フラット ファイルのスキーマです。 |
SendPipeline.btp | フラット ファイル アセンブラ コンポーネントを含む BizTalk Server 送信パイプライン ファイルです。 |
Setup.bat | このサンプルをビルドおよび初期化するために使用されます。 |
このサンプルの使用方法
このサンプルは、独自のフラット ファイル処理ソリューションの基礎として使用してください。 このサンプルで使用されているデザイン要素の多くは、独自の要件に合うように拡張できます。
このサンプルのビルドと初期化
コマンド ウィンドウで、次のフォルダーに移動します。
<Samples Path>\Pipelines\AssemblerDisassembler\FlatFileSend
ファイル Setup.bat を実行すると、次のアクションが実行されます。
次のフォルダに、このサンプルの入力 (FFInput) フォルダと出力 (FFOutput) フォルダを作成します。
<Samples Path>\Pipelines\AssemblerDisassembler\FlatFileSend
このサンプルの Visual Studio プロジェクトをコンパイルします。
BizTalk Server の受信場所、送信ポート、および受信ポートを作成しバインドします。
Note
このサンプルでは、ポートを作成してバインドするときに、次の警告が表示されます。
Warning: Receive handler not specified for receive location "FlatFileSend_RL"; updating with first receive handler with matching transport type. Warning: Host not specified for orchestration "FlatFileSend"; updating with first available host.
これらの警告は無視しても問題ありません。 (インストールでの名前付け方法はユーザーによって異なる可能性があるため、ホスト名と受信ハンドラーはバインド ファイルから除外されています。)受信場所を有効にし、送信ポートを開始します。
Note
このサンプルを実行する前に、ビルドと初期化のプロセス中に BizTalk Server でエラーが報告されていないことを確認する必要があります。
Note
Setup.bat を実行せずにこのサンプルでプロジェクトを開いてビルドする場合は、まず、.NET Framework厳密な名前ユーティリティ (sn.exe) を使用して厳密な名前キーペアを作成する必要があります。 このキー ペアを使用して、結果のアセンブリに署名します。
Note
Setup.bat によって行われた変更を元に戻すには、Cleanup.bat を実行します。 Setup.bat を 2 回目に実行する場合は、その前に Cleanup.bat を実行してください。
このサンプルの実行
ファイル FlatFileSend_in.xml を FFInput フォルダにコピーします。
テキスト ファイルが FFOutput フォルダに作成されることを確認します。 テキスト ファイルの名前は、メッセージ ID の GUID に基づきます。 このファイルには、XML 入力ファイル FlatFileSend_in.xml と同等のフラット ファイルが含まれています。
このサンプルで使用されるクラスまたはメソッド
Setup.bat および Cleanup.bat の 2 つの構成スクリプトは、次の管理用 Windows Management Instrumentation (WMI) スクリプトに依存しています。
Start Send Port\StartSendPort.vbs
Enable Receive Location\EnableRecLoc
Remove Send Port\RemoveSendPort
セットアップおよびクリーンアップのバッチ ファイルでは、次のように BTSTask を使用します。
バインド ファイルを適用し、アプリケーション、ポート、バインドを作成するための BTSTask ImportBindings
FLATFileSendApplication を削除する BTSTask RemoveApp