私は、レコードを解析して処理するファイルを持っています。それは行単位で(一度に1つのレコードを解析して)うまく動作しています。私の要件は、複数の行を解析し、各レコードから必要な情報を取得し、すべてのレコードから取得した情報を結合した後、ビジネスロジックを実行するサービスを呼び出します。私はプロセッサクラス内でこのロジックを実行する必要があります。データは、例えば以下のようにのように見える:スプリングバッチ - プロセッサ内で複数のレコードを同時に処理する方法は?
001 123456 987654321551580ウェインDR 1
001 123456 987654321552APT 786 1
001 123456 987654321553LOS ANGELES 1
001 123456 987654321554CA 1
データe列30-32で利用可能なものは、私が各レコードから取り出したいものです。上の例では、それぞれの行にそれぞれ551,552,553,554,555の値があります。彼らはすべて一緒にファイルに入っています。したがって、プロセッサの現在のアイテムが最初の行を解析し、その '551'(ビジネスコードのAddress Line1を意味する)を見つけたら、この行に続く残りのアドレスをフェッチして1つの完全な住所。最後に、このアドレスをプロセッサーからサービスクラスに渡してから、ファイル内の次のレコードを解析するために移動します。私の問題は、プロセッサがレコードごとに行ごとに動作することです。このようにして、これらすべての関連する行を追跡/関連付けることはできません。 私は簡単な方法で私の問題を説明することができない場合は申し訳ありません。私は春のバッチに新しいとまだ学んでいます。
あなたが行が実際にどのように関連しているか追加することはできますか? '551'と' 552'はどちらも同じ親オブジェクトにリンクしていますか?あるいは、 '551 'を含む別の行が、1行目に戻ってリンクする必要のあるファイルをさらに下ろうとしますか? –
それを見てくれてありがとう、ディーン。 –
それを見てくれてありがとうございました。回線の関係は次のとおりです。(001-Tran Id)(123456-Party Num)(987654321-Unique Party Id)(551-Address Code)(580 Wayne DR 1-実アドレス値) TranId、PartyNum、UniquePartyIdのように551,552,553,554、555という異なる住所コードでも同じです。はい、住所コードがファイルのさらに下にある場合がありますが、別の住所コードに関連付けられますTranId、PartyNum、およびUniquePartyIdの組み合わせです。それはあなたの質問に答えますか? –