ループ
「ループ」操作は、指定された回数だけ、または条件が満たされるまで、1 つまたは複数の操作を繰り返し実行します。この操作には次の 2 つのタイプのループ方法があります。
「回数」 - 指定された回数に達するまで 1 つまたは複数のタスクを繰り返します。このため、たとえば、OneDrive アカウントで多数の同じ連絡先を作成する場合、ワークフローで 'Times' タイプのループを使用します。指定した回数だけタスクが実行されます。
「各アイテム」 - 配列またはコレクション内の各アイテムに対して 1 つまたは複数のタスクを繰り返します。返された配列のすべてのオブジェクトから、'name' プロパティの値だけをフェッチする場合、このタイプのループを使用できます。コレクションまたは配列内のすべてのアイテムに対してタスクが実行されます。
たとえば、すべての Trello カードのリストをフェッチし、Google ToDo リストに各カードのタスクを作成する場合、「各アイテム」ループオプションを使用します。各カードの名前が、Google ToDo リストに作成される各タスクのタイトルになります。これは、単一の Trello カードの名前をフェッチするワークフローと Google ToDo リストに新規タスクを作成するワークフローを別々に作成するよりもはるかに短時間で行えます。
「ループ」操作の使用
ワークフローでこの操作を使用するには、ThingWorx Flow にこれを接続します。フローに接続するには、次の操作を行います。
1. をクリックし、「ループ」ユーティリティの下の「ループ」操作をキャンバスにドラッグします。要件に従って「ループ」操作を展開したり折りたたんだりできます。ループブロック内に複数の操作を追加してミニワークフローを作成できます。一度、ワークフローキャンバス上で操作をループの外にドラッグした後は、その操作をループ内にドラッグできません。操作をループ内に追加するには、その操作を操作ナビゲーションパネルからループに直接ドラッグします。
ワークフローが実行されると、ループの前にあるすべての操作を実行してから、定義されている回数に達するか条件が満たされるまでループブロック内のすべての操作を繰り返し実行した後、ループの後ろにある操作に進みます。
2. この操作にマウスポインタを合わせて をクリックするか、この操作をダブルクリックします。「ループ」操作ウィンドウが開きます。
3. 必要に応じて、ラベル名を編集します。デフォルトでは、ラベル名は操作名と同じです。
4. 「ループタイプを選択」フィールドで、以下のいずれかのオプションを選択します。
「回数」 - 「回数」フィールドで、ループを実行する回数を指定します。「ループ」操作内のワークフローが前の操作からの入力を必要としない場合、このループを実行することをお勧めします。
「各アイテム」 - 「ソース配列またはオブジェクト」フィールドで指定されている配列アイテムまたはオブジェクトを毎回 1 つとって複数回実行します。
5. 「完了」をクリックします。
次のビデオは、「ループ」操作の使用方法を示しています。
出力スキーマ
「ループ」操作は、以下の図に示すような出力スキーマを返します。
currentIndex - このプロパティは、現在のイテレーションのインデックス (位置) をフェッチします。
currentItem - ループの設定で選択されているソースがオブジェクトの配列である場合、このプロパティはイテレーションごとに現在のオブジェクトを返します。
currentKey - ループの設定で選択されているソースがオブジェクトである場合、このプロパティはオブジェクトのキーだけを返します。ソースが配列の場合、各アイテムのインデックスを返します。
currentValue - ループの設定で選択されているソースがオブジェクトである場合、このプロパティはオブジェクトの値だけを返します。ソースが配列の場合、配列のすべてのアイテムを返し、配列内にオブジェクトがある場合にはオブジェクト全体も返します。{{$a0.currentValue.name}} などの点表記を使用することで、特定のキーまたはプロパティの値を取得できます。
totalLength - オブジェクトの配列内のすべてのオブジェクトの総数、または配列内のすべてのアイテムの総数を返します。