RecordJoinコンポーネントを使うと、csvなどで設定された2つのレコードを1つにまとめることができます。
今回は下図のフローで確認を行います。
FileGetコンポーネントで読み込むファイル
今回FileGetコンポーネントで読み込むcsvファイルは以下の2つになります。
(上図左側のFileGet1コンポーネントで読み込む)seisan.csv
"工場名","品名"
"東京工場","コーヒー"
"大阪工場","梅酒"
"東京工場","水"
"横浜工場","お茶"
※今回は1行目のタイトル行は取得しない設定になっています。
(上図右側のFileGet2コンポーネントで読み込む)drinkrecord.csv
"品名","数量","金額","合計金額"
"お茶",1,100,0
"コーヒー",2,120,0
"梅酒",4,350,0
※今回は1行目のタイトル行と4つ目のフィールドは取得しない設定になっています。
※プロパティでファイルのエンコーディングと出力エンコーディングの文字コードを合わせないと日本語が文字化けします。
RecordJoinコンポーネントを使って読み込んだファイルのレコードをまとめる
青い四角に書かれている1と2が入力順序になります。
(フローを設定した後でも、RecordJoinコンポーネントを右クリックして表示される入力順序の並べ替えから入力順序を変更できます。)
RecordJoinコンポーネントをダブルクリックして表示される出力列の選択から、RecordJoinコンポーネントでレコードをまとめた後に出力される列を選択します。
RecordJoinコンポーネントのプロパティで基本タブと入力キータブの内容を設定します。
JOIN処理をOUTERにする場合はOUTER JOIN(外部結合)になります。(INNERにするとINNER JOIN(内部結合)になります。)
出力フィールドタブは自動で設定されます。
入力キータブでは「ファイルを取得しているコンポーネント名.ファイル中のフィールド名」で表示されるフィールドを選択し、この設定で入力キー1=入力キー2でJOINが行われます。
今回の設定では品名でJOINを行います。
フローの出力結果
"東京工場","コーヒー","2","120"
"大阪工場","梅酒","4","350"
"東京工場","水","",""
"横浜工場","お茶","1","100"
工場名と商品名はFileGet1で取り込んだ内容を、数量と金額はFileGet2で取り込んだ内容を出力しています。
「出力列の設定」で設定した列が出力されていることが確認できました。
3番目のレコードでは、品名が水のレコードがFileGet2側のファイルの存在しないため、3~4番目のフィールドが""の空欄になっています。