またまたお世話になります。
CSVファイルを、テーブルに挿入する機能を作成しています。
取り込むCSVファイルの中で、親子関係を示す属性があります。
この属性を確認して、子供の行のカラムに、親の属性を設定して更新させたいのですが、
データフロー上での、フラットファイルの行数分処理を繰り返す処理の仕方が解りません。
例 CSVファイル
ID,階層,親ID
A,0,
B,1,A
C,1,A
D,2,B
E,3,D
実行後テーブル
ID,階層,親ID,親1,親2,親3
A,0, , , ,
B,1,A,A,,
C,1,A,A,,
D,2,B,A,B,
E,3,D,A,B,D
この例ですと、IDのAが一番の親となり
IDのBが親IDがAなので、Aを親1に設定される。
IDのEの親がDなので、Dで設定された親1と親2を参照して設定Eの親1の親2に設定する。
どうしても、フラットファイルの行分繰り返さないと
実現出来ないような気がします。
私の失敗した実装方法は、
■データフロー
1.フラットファイルを階層の昇順に変更させる。
2.フラットファイル情報をワークテーブルにコピーさせる。
3.「スクリプトコンポーネント」で、親IDを基にワークテーブルから親情報を取得し、追加カラムに設定する。
4.テーブルに挿入する。
この実装方法だと、昇順された親の一行だけ意図した結果になり
後の行は処理されませんでした。
申し訳ありませんが、アドバイスを頂ければと思います。