ループ
「ループ」操作は、指定した回数だけ、または指定した条件が満たされるまで、1 つまたは複数の操作を繰り返し実行するときに使用します。
ワークフローで「ループ」操作を使用するには、次の手順を完了します。
パート A: 「ループ」操作の設定
1. をクリックし、
「ループ」の下の
「ループ」操作をキャンバスにドラッグします。
「ループ」ブロックがキャンバスに表示されます。
2. この操作にマウスポインタを合わせて
をクリックするか、この操作をダブルクリックします。「ループ」ウィンドウが開きます。
3. 必要に応じて、「ラベル」を編集します。デフォルトでは、ラベル名は操作名と同じです。
4. 「ループタイプを選択」フィールドで、次のいずれかのオプションを選択し、それぞれのタスクを実行します。
ループタイプを選択 | タスク |
---|
「回数」 - 指定された回数に達するまで 1 つまたは複数のタスクを繰り返します。 「ループ」操作内のワークフローで前の操作からの入力を必要としない場合、このオプションを選択することをお勧めします。 | 「回数」フィールドで、ループを実行する回数を指定します。 |
「各アイテム」 - 配列またはコレクション内の各アイテムに対して 1 つまたは複数のタスクを繰り返します。 | 「ソース配列またはオブジェクト」フィールドで、前の操作の出力をマッピングして配列またはオブジェクトを指定します。 |
「While」 - 指定された条件が満たされるまで 1 つまたは複数のタスクを繰り返します。 | a. 「初期値」フィールドに、ループの初期値を入力します。数値、ブール、文字列、または JSON を指定できます。 この値によって $currentItem の値が設定されます。この値はループが開始する前に 1 回だけ使用されます。 b. 「条件」フィールドに、条件を入力します。「初期値」のアイテムを使用する場合、インライン定義式で $currentItem を使用します。例: {{$currentItem}} < 5。 この条件は、ループが実行される前に毎回評価されます。この条件の評価結果が true である場合、ループは続行します。そうでない場合、ループは中断します。「条件」を 0 または false (大文字と小文字を区別しない) に設定するか、空のままにすると、条件の評価結果が false になってループが中断します。 | 条件が無限に true になる場合、ワークフローがタイムアウトになるまでループが実行されます。ワークフローのデフォルトのタイムアウトは 3 分です。 |
c. 「更新後の値」フィールドに、更新後の値を入力します。数値、ブール、文字列、または JSON を指定できます。 この値によって $currentItem の値が更新されます。この定義式は各ループサイクルの後で 1 回評価されます。 | 「初期値」と「条件」に、ループ内の任意の操作の出力を使用した場合、「条件」の評価結果は undefined になり、「ループ」は失敗します。 |
|
5. 「完了」をクリックします。
6. さらに、「ループ」ブロックにカーソルを合わせて、以下のタスクを実行します。
▪ 「ループ」ブロックを最大化または最小化するには、
をクリックします。
▪ キャンバスから
「ループ」ブロックを除去するには、
をクリックします。
パート B: ループブロックの外への操作の追加
1. ワークフローエディタの右側にある「操作」パネルで、キャンバス上の「ループ」ブロックの外に操作をドラッグします。
「ループ」ブロックの前後に 1 つ以上の操作を配置できます。
2. 「ループ」ブロックの前の操作を
に接続します。
3. 「ループ」ブロックの後の操作を
に接続します。
4. 要件に従って操作を設定します。
パート C: ループブロックへの操作の追加
1. ワークフローエディタの右側にある
「操作」パネルから、
「ループ」ブロック上に操作をドラッグします。操作を
「ループ」ブロック上にドラッグすると、
「ループ」ブロックがハイライトされます。
「ループ」ブロックに操作をドロップしたときに、その操作がブロックの 1 つ目の操作である場合、その操作が
に自動的に接続されます。
「ループ」ブロックに 1 つまたは複数の操作を追加できます。
キャンバス上の「ループ」ブロックの外に操作をドラッグした後で、その操作を「ループ」ブロック内にドラッグすることはできません。
2. 「ループ」ブロックに複数の操作を追加し、それらを 1 つずつ接続します。必要に応じて、「ループ」ブロック内に操作を 1 つだけ配置できます。
3. 「ループ」ブロック内の最後の操作を
に接続します。
4. 要件に従って、「ループ」ブロック内の操作を設定します。
実行
ワークフローが実行されると、ワークフローの 1 つ目の操作を実行してから、定義されている回数に達するか条件が満たされるまでループブロック内のすべての操作を繰り返し実行した後、ループの後ろにある操作に進みます。
出力スキーマ
「回数」ループの場合:
◦ currentIndex - 1 から始まる、現在のイテレーションのインデックス (位置)。
◦ currentKey - 0 から始まる、現在のイテレーションのインデックス (位置)。
◦ currentItem、currentValue - イテレーションの現在の値。
◦ totalLength - ループの反復回数。
「各アイテム」ループの場合:
◦ currentIndex - 0 から始まる、現在のイテレーションのインデックス (位置)。
◦ currentItem - ソースがオブジェクトである場合、このプロパティは currentIndex に対応する値を返します。ソースが配列である場合、このプロパティは各イテレーションの現在のオブジェクトを返します。
◦ currentKey - ソースがオブジェクトである場合、このプロパティはオブジェクトのキーを返します。ソースが配列である場合、各アイテムのインデックスを返します。
◦ currentValue - ソースがオブジェクトである場合、このプロパティはオブジェクトの値を返します。ソースが配列である場合、配列のすべてのアイテムを返し、配列内にオブジェクトがある場合にはオブジェクトも返します。特定のキーまたはプロパティの値を取得するには、{{$<操作 ID>.currentValue.<プロパティ名>}} を指定します。
◦ totalLength - オブジェクトの配列内のすべてのオブジェクトの総数、または配列内のすべてのアイテムの総数。
「While」ループの場合:
◦ currentIndex、currentKey - 0 から始まる、現在のイテレーションのインデックス (位置)。
◦ currentItem、currentValue - イテレーションの現在の値を返します。
◦ totalLength - 定義されていません。