FlatFileReceive (BizTalk Server サンプル)
FlatFileReceive サンプルは、BizTalk Serverを使用してフラット ファイルを同等の .xml ファイルに処理する方法を示しています。
このサンプルの処理
このサンプルでは、FFInput フォルダを受信場所として構成します。 このフォルダにサンプル ファイル FlatFileReceive_in.txt のようなファイルを置くと、BizTalk Server はこのファイル内のメッセージを次の手順で処理します。
受信場所フォルダ FFInput の入力ファイルからメッセージを読み取ります。
受信パイプラインにおいて、フラット ファイル逆アセンブラ コンポーネントが、メッセージをフラット ファイル形式から同等の XML メッセージに変換します。
MessageBox データベース内で、メッセージが FILE 送信ポートに回送されます。この送信ポートは、XML メッセージを送信アダプタ フォルダ FFOutput 内のファイルに書き込みます。
このサンプルのデザイン方法とその理由
サンプル メッセージはこのサンプル内の基本デザインの多くを示しています。 フラット ファイル メッセージは、フラット ファイル逆アセンブラおよびカスタム受信パイプライン内のフラット ファイル スキーマを使用して逆アセンブルする必要があります。 これらのデザイン要素と他のデザイン要素を次の表にまとめます。
デザイン要素 | 選択理由 |
---|---|
カスタム受信パイプライン | - カスタム パイプラインでは、フラット ファイル逆アセンブラーとフラット ファイル スキーマを使用して、受信発注書メッセージを変換します。 フラット ファイル逆アセンブラ自体はパイプラインではなく、BizTalk Server 管理コンソールでの受信パイプラインの構成時に使用することはできません。 |
フラット ファイル スキーマ | - すべての同じレコードおよびフィールド特性 (構造体を含む) を XML スキーマとして定義し、フラット ファイル インスタンス メッセージを同等の XML インスタンス メッセージに変換するために必要なすべてのフラット ファイル特性を定義するためのメカニズムを提供します (またはその逆も同様)。 |
サブスクリプション フィルター | - サブスクリプション フィルターは、プロパティ フィールドに基づいて 1 つ以上の条件を満たすメッセージをキャプチャすることで、実際のルーティングを実行します。 |
XMLTransmit | - 必要に応じ、送信 XML メッセージの基本的なアセンブリを実行します。 PassThruTransmit パイプラインでは追加のサポートは行われません。 |
これらの要素が組み合わされて、フラット ファイル形式の注文書メッセージを受信場所から受け入れ、変換した XML 表現を送信場所に書き込むソリューションが作成されます。
このサンプルの設計には次の考慮事項が適用されます。
フラット ファイル スキーマ (PO.xsd) には、注文書フラット ファイルの構造を記述した拡張注釈が含まれています。 これらのファイルは手動で作成できますが、その多くはフラット ファイル ウィザードを使用して生成できます。
フラット ファイル スキーマは Unqualified の elementFormDefault 値を使用します。 これにより正しい結果がもたらされますが、結果には予期しない XML 名前空間 (xmlns) 修飾が追加されます。 この問題を避けるには、Qualified の elementFormDefault を使用してください。
XmlTransmit が送信パイプラインとして使用されます。 プロパティの降格または他のメッセージ処理が送信ポートで必要ない場合は、PassThruTransmit パイプラインを使用してください。
このサンプルの場所
<Samples Path>\Pipelines\AssemblerDisassembler\FlatFileReceive\
次の表は、このサンプルのファイルとその目的を示しています。
ファイル | 説明 |
---|---|
Cleanup.bat | アセンブリの展開を解除し、グローバル アセンブリ キャッシュからアセンブリを削除するために使用されます。 送信ポートと受信ポートが削除されます。 必要に応じて、Microsoft インターネット インフォメーション サービス (IIS) の仮想ディレクトリが削除されます。 |
FFReceivePipeline.btp | BizTalk Server は、フラット ファイル逆アセンブラコンポーネントを含むパイプライン ファイルを受信します。 |
FlatFileReceive.btproj, FlatFileReceive.sln | このサンプルのプロジェクト ファイルとソリューション ファイルです。 |
FlatFileReceive_in.txt | サンプル入力ファイルです。 |
FlatFileReceiveBinding.xml | ポート バインドなどの自動セットアップに使用されます。 |
PO.xsd | 受信フラット ファイルのスキーマです。 |
Setup.bat | このサンプルをビルドおよび初期化するために使用されます。 |
このサンプルの使用方法
このサンプルは、独自のフラット ファイル処理ソリューションの基礎として使用してください。 このサンプルで使用されているデザイン要素の多くは、独自の要件に合うように拡張できます。
このサンプルのビルドと初期化
コマンド ウィンドウで、次のフォルダーに移動します。
<Samples Path>\Pipelines\AssemblerDisassembler\FlatFileReceive
次のアクションを実行するファイル Setup.bat を実行します。
次のフォルダに、このサンプルの入力 (FFInput) フォルダと出力 (FFOutput) フォルダを作成します。
<Samples Path>\Pipelines\AssemblerDisassembler\FlatFileReceive
このサンプル用に Visual Studio プロジェクトをコンパイルおよび展開します。
BizTalk Server の受信場所、送信ポート、および受信ポートを作成しバインドします。
Note
このサンプルでは、ポートの作成時とバインド時に次の警告が表示されます。
Warning: Receive handler not specified for receive location "FlatFileReceive_RL"; updating with first receive handler with matching transport type.
これらの警告は無視しても問題ありません。 (インストールでの名前付け方法はユーザーによって異なる可能性があるため、ホスト名と受信ハンドラーはバインド ファイルから除外されています。)受信場所を有効にし、送信ポートを開始します。
Note
このサンプルを実行する前に、ビルドと初期化のプロセス中に BizTalk Server でエラーが報告されていないことを確認する必要があります。
Note
Setup.bat を実行せずにこのサンプルでプロジェクトを開いてビルドする場合は、まず、.NET Framework厳密名ユーティリティ (sn.exe) を使用して厳密な名前キー ペアを作成する必要があります。 このキー ペアを使用して、結果のアセンブリに署名します。
Note
Setup.bat によって行われた変更を元に戻すには、Cleanup.bat を実行します。 Setup.bat を 2 回目に実行する場合は、その前に Cleanup.bat を実行してください。
このサンプルの実行
ファイル FlatFileReceive_in.txt を FFInput フォルダにコピーします。
.xml ファイルが FFOutput フォルダに作成されることを確認します。 出力ファイルの名前はメッセージ ID GUID に基づきます。 このファイルには、受信フォルダに配置されたフラット ファイルに相当する 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
FlatFileReceiveApplication を削除する BTSTask RemoveApp