繰り返し(データ件数)処理

オペレーション名

繰り返し(データ件数)

機能概要

入力データの件数分、処理を繰り返します。

データベースやExcelなどのテーブルモデル型データの場合にはレコードが繰り返しの単位となります。

XML型データの場合には繰り返しの基点となる要素に直接含まれる要素が繰り返しの単位となります。

繰り返し(データ件数)の構成

アイコン

名前

説明

繰り返し(データ件数)開始

繰り返し(データ件数)の開始です。

繰り返し(データ件数)終了

繰り返し(データ件数)の終了です。

プロパティ

= 備考 =

変数の使用については、「変数」を参照してください。

基本設定

項目名

必須/省略可

変数の使用

説明

備考

名前

必須

使用不可

スクリプトキャンバス上での名前を入力します。

 

入力データ

必須

使用不可

スクリプトキャンバス上にあるコンポーネントを選択します。

 

必須設定

項目名

必須/省略可

変数の使用

説明

備考

1ループでの処理件数

必須

使用可

1ループでの処理件数を入力します。

  • デフォルト値は「1」です。

XMLデータ処理

項目名

必須/省略可

変数の使用

説明

備考

分割パス

省略可

使用不可

繰り返しの基点となるパスを入力します。

テーブルモデル型の場合は省略できます。

 

ログ設定

項目名

必須/省略可

変数の使用

説明

備考

ログ設定を変更する

省略可

使用不可

繰り返し処理内のログ設定を一時的に変更するかどうかを選択します。

[チェックあり]

ログ設定を変更します。

[チェックなし]

(デフォルト)

ログ設定を変更しません。

 

ログを出力する

省略可

使用不可

ログを出力するかどうかを選択します。

[チェックあり]

(デフォルト)

ログを出力します。

[チェックなし]

ログの出力を停止します。

  • [ログ設定を変更する]にチェックを入れた場合、有効になります。

ログレベル

省略可

使用不可

変更するログレベルを選択します。

[NOTICE]
[INFO]

(デフォルト)

[FINFO]
[FINEST]
[DEBUG]

  • [ログを出力する]にチェックを入れた場合、有効になります。

コメント

項目名

必須/省略可

変数の使用

説明

備考

コメント

省略可

使用不可

このコネクターの簡単な説明を記述することができます。

 

アイコンクリックメニュー

アイコン

項目名

説明

備考

折り畳み/展開

アイコン上に表示される[+]または[-]を選択して操作します。

[繰り返し(データ件数)開始]から[繰り返し(データ件数)終了]の間にあるアイコンの表示/非表示を切り替えます。

折り畳んだ場合、[繰り返し(データ件数)開始]のみが表示されます。

PSPでの使用について

PSPで使用できます。

= 備考 =

PSPについては、「パラレルストリーミング処理」を参照してください。

使用できるコンポーネント変数

コンポーネント変数名

説明

備考

count

繰り返した回数が格納されます。

  • デフォルト値はnullです。

繰り返し(データ件数)の操作方法

繰り返し(データ件数)処理の作成

繰り返しを行いたい処理を、[繰り返し(データ件数)開始][繰り返し(データ件数)終了]の間に配置します。

仕様制限

  • ログ設定を変更した場合、PSPやスレッド処理など、マルチスレッドで動作している処理の途中でログレベルが変更される場合があります。

  • スマートコンパイラによるPSPの範囲は、繰り返し処理が完了するまでとなります。

主な例外

ありません。

注意事項

マージを入力データとする場合

マージの出力データは常にXML型となります。

そのため、出力スキーマにテーブルモデルのスキーマを設定しても、繰り返し(データ件数)処理にデータフローを引く場合には、[分割パス]に「/table/row」を指定する必要があります。

ファイル系コネクター書き込み処理を繰り返し処理中に配置する場合

CSVコネクターの書き込み処理など、ファイル系コネクター書き込み処理を繰り返し処理中に配置する場合、繰り返し単位で書き込み先ファイルの開閉を行うため、パフォーマンスが低下します。

ファイル系コネクター書き込み処理を繰り返し処理中に配置する場合、繰り返し処理全体をトランザクションで囲むことで繰り返し単位での書き込み先ファイルの開閉がなくなり、パフォーマンス低下を防ぐことができます。

 

以下のスクリプトは、CSVファイルを読み取り、繰り返し処理で1行ずつデータを追加書き込みを行う処理です。CSVファイル読み取り→CSVファイル書き込みと処理内容は等価ですが、パフォーマンスが低下します。

 

パフォーマンスが低下するループ処理

 

上記スクリプトで繰り返し処理全体をトランザクションで囲むことでパフォーマンス低下を防いだスクリプトが以下のスクリプトです。

パフォーマンス低下を防止するループ処理

処理イメージ

繰り返し(データ件数)処理を使用して、CSVファイルを読み取り、CSVファイルに書き込む処理を実行するスクリプトを作成します。

  1. 以下のようなスクリプトを作成します。

    CSVファイルの内容は以下のとおりです。

    id

    value

    S001

    10000

    S002

    20000

    S003

    30000

  2. 繰り返し(データ件数)処理のプロパティ設定は以下のとおりです。

  3. スクリプトの実行後、実行ログビューで処理結果を確認します。

    CSVファイル書き込み処理で書き込まれたCSVファイルの内容は以下のとおりです。

    id

    value

    S001

    10000

    S002

    20000

    S003

    30000