繰り返し処理(データ件数)の正しい使い方
繰り返し処理はHULFT Squareで使用できる便利なコンポーネントです。
しかし、使い方を間違うとうまく処理してくれないケースがあります。
今回の記事では、繰り返し処理の種類からうまく処理してくれないケース、そしてその解決方法までお伝えします。
1.繰り返し処理の種類
・繰り返し処理
指定した回数分、処理を繰り返します
・繰り返し(条件指定)処理
指定された条件を満たしている間、処理を繰り返します。
・繰り返し(データ件数)処理
入力データの件数分、処理を繰り返します。
データベースやExcelなどのテーブルモデル型データの場合にはレコードが繰り返しの単位となります。
XML型データの場合には繰り返しの基点となる要素に直接含まれる要素が繰り返しの単位となります。
今回は、繰り返し(データ件数)処理について解説していきます。
mapper内にも「単純な繰り返し」がありますが、mapper内の処理を繰り返すものです。
「単純な繰り返し」は別記事にて紹介します。
2. Loop処理されない場合
Loop処理の前後にもコンポーネントがあり、データフローの繋ぎ方元が間違っている場合、Loop処理が反映されずに1件しか処理されない場合があります。
以下のデータを繰り返し(データ件数)を用いてスクリプトを作成し、4行すべてが出力されるか試してみましょう。
データをそのまま出力することは通常ないと考えられますが、今回は説明のために変換せずにデータをそのまま出力するスクリプトを作成します。

2-1. Loop処理されていない原因
このように、データを取得しているコンポーネントからMappingにデータフローが繋がれていると、Loop処理が適用されず、すべての行が出力されません。

試しに、このまま実行してみましょう。

上図のように、1行目のみ出力されてしまいました。
次の章で、こちらのケースの解決方法をお伝えします。
※トランザクションの使用がオンラインマニュアルに記載されておりますので、実際に利用する際にはご利用ください。
本記事ではLoop処理の説明のみ実施するため、トランザクションに関しては割愛させていただきます。
3. Loop処理されない場合の解決方法
3-1. 解決方法
以下のように、Loop(STRAT)からデータフローを引くように変更して、再度実行します。

すると、以下のようにすべてのデータがうまく出力されました

4. おまけ
CSVファイル書き込み処理コンポーネントを配置すると、デフォルト値は書き込み設定「追加書き込み」にチェックが入っていません。
チェックを入れずに実行すると、最終レコードのみ出力されることがあります。

いかがだったでしょうか?
他にも、様々なケースの対処法を紹介していますので、是非目を通してみてください。
<免責事項>
情報の掲載には注意を払っておりますが、掲載された情報の内容の正確性については一切保証しません。また、当サイトに掲載された情報を利用・使用(閲覧、投稿、外部での再利用など全てを含む)するなどの行為に関連して生じたあらゆる損害等につきましても、理由の如何に関わらず自己責任で行う必要があります。
テクバンでは、お客様の業務にある困りごとをETLやBIをはじめ様々なテクノロジーで解決するためのご相談をお受けしております。「HULFT Square」もあわせてご覧下さい。HULFT Squareでデータ分析基盤を講師櫛、様々な経営判断の材料を可視化していくサービスなども提供してまいります。