3 つのノード (ヘッダー、本文、フッター) を持つ XML ファイルを受け取り、2 番目のノード (本文) 自体にレコードが含まれるシナリオがあります。これらのレコードを本文でフラット ファイルにマップし、特定のフォルダーに出力します。ただし、body ノードに含まれるレコードが 0 である場合もあります。
レコードがある場合のみ送信ポート出力ファイルを作成する必要があり、サイズが 0 kb のファイルは出力しません。
どうすればこれを行うことができますか?
3 つのノード (ヘッダー、本文、フッター) を持つ XML ファイルを受け取り、2 番目のノード (本文) 自体にレコードが含まれるシナリオがあります。これらのレコードを本文でフラット ファイルにマップし、特定のフォルダーに出力します。ただし、body ノードに含まれるレコードが 0 である場合もあります。
レコードがある場合のみ送信ポート出力ファイルを作成する必要があり、サイズが 0 kb のファイルは出力しません。
どうすればこれを行うことができますか?
次の 2 つのアプローチが考えられます。
どちらのシナリオでも、送信ポート (フラット ファイル アセンブラーでも構成されます) でマップを実行します。メッセージングのみのソリューション (上記の 1) を選択した場合は、受信ポート名またはメッセージ タイプ (またはその他の昇格されたプロパティ) のいずれかでフィルター処理する必要があります。
最初のオプションを「エレガント」とマークしました。これは、メッセージが受信パイプラインによって解析されるときに処理を完了することができ、目的の結果を得るために追加の処理 (つまり、オーケストレーションのスピンアップ) を必要としないためです。