BizTalkで解決しようとしている問題があり、それを解決するための最善の方法について考えていただければ幸いです。フラットファイルアダプタを使用してフラットファイルを読み込んでいます。このファイルには、さまざまなタイプのレコードが含まれています。タイプ1レコードは親レコードです。残りのタイプはすべて、さまざまな外部キーを使用して親レコードにリンクします。フラットファイル(すべてのタイプのレコードを含む)をロードすることによって作成されたメッセージを受け取り、それを外部キーに基づいてすべてのレコードを結合した結果であるメッセージに変換する変換を開発しようとしています。したがって、メッセージレコードは結合の結果であるため、結果のメッセージの各レコードには、すべてのレコードタイプの列が含まれます。
たとえば、フラットファイルには次のレコードが含まれている場合があります。
* Type1
* Type1
* Type2
* Type2
* Type3
* Type4
* Type4
変換後のメッセージには、次のようなレコードが含まれている可能性があります。
* Type1 columns, type2 columns, type3 columns, type4 columns
* Type1 columns, type2 columns, type4 columns
私はこれを達成するためのオプションを検討してきましたが、何人かの人々が行く途中でアドバイスを持っているかもしれないことを望んでいました。
私が試したことは次のとおりです。
- 元のメッセージを各タイプのレコードを含むメッセージに分割し、マルチソースマップを使用してそれらを結合します。使用するファンクトイドがわからなかったため、これを達成するのは困難でした。
- 子レコードをSQLデータベースに挿入して、SQLルックアップ関数を使用して親レコードの追加の列にデータを入力できるようにします。これは私が期待していたよりも少し遅く、データベースを使用するという追加の依存関係があります。
- DTSを使用してファイルを読み込み、その形式に変換し、BizTalkが使用できるように結合された形式でファイルを書き出します。これはシンプルで高速ですが、BizTalkを使用していません。
このためにBizTalkを最大限に活用するために前進する方法についてのアドバイスをいただければ幸いです。