img

Forコンポーネントは、FortranのDoループのように指定されたインデックス値に応じて下位コンポーネントを繰り返し実行します。

Forコンポーネントに設定できるプロパティは以下のとおりです。

start

インデックスの始値を設定します。

end

インデックスの終値を設定します。

step

インデックス更新時の更新幅を設定します。

インデックス値の参照方法について
ループ実行中に下位コンポーネントから現在のインデックス値を利用する場合は、$WHEEL_CURRENT_INDEX 環境変数で参照可能です。

number of instances to keep

各インデックスで処理を行なった時のディレクトリを最大何個まで残すかを指定します。 無指定のときは、全てのディレクトリが保存されます。

詳しくは後述のForコンポーネント実行時の挙動で説明します。

Forコンポーネント実行時の挙動

Forコンポーネントが初めて実行されるとき、コンポーネントのディレクトリはインデックスの値を末尾につけた名前でコピーされます。 コピーされたディレクトリ内の下位コンポーネントの実行が全て終了すると、新しいインデックス値が計算されその値に基いてさらにディレクトリがコピーされます。

この処理は順次繰り返し実行され、インデックスの値が終値を超えるまで続けられます。 終値を超えた時点のディレクトリは元のディレクトリにコピーされ、Forコンポーネントの処理は終了します。 なお、stepにマイナスの値を設定した場合も始値 > 終値 となっていれば正常に実行されます。 この場合はインデックスが終値を下回ると実行終了となります。

例えば、start=1, end=3, step=2と設定された forというコンポーネントは次のように処理されます。

  1. forディレクトリをfor_1ディレクトリとしてコピーする
  2. for_1ディレクトリ内のコンポーネントを順次実行する
  3. index計算 1+2 = 3 => 終値の3と等しいので、次のループを実行する
  4. for_1ディレクトリをfor_3ディレクトリとしてコピーする
  5. for_3ディレクトリ内のコンポーネントを順次実行する
  6. index計算 3+2 = 5 => 終値の3を超えているので、終了処理を行なう
  7. for_3ディレクトリをforディレクトリとしてコピーする

number of instance to keepの値が0以外に設定されていた場合は、4,7の処理を実行後に設定された数を超える古いディレクトリ(for_1for_3など)を削除します。


コンポーネントの詳細に戻る

Updated: