ループはワークフロー内に実装でき、定義された条件に基づいて一連のタスクを繰り返すことができます。
ループ設定には、ブロック設定のタブ、またはブロックを右クリックしてループを選択することでアクセスできます。
ループ設定には、操作対象となる一覧が必要です:
-
単純な単一の値。これは、
{{ @item }}などのタスクパラメータで使用できます。 -
.JSONオブジェクト。オブジェクト内の各要素は、
{{ @item.key }}などのキーで指定できます。
ループの集計結果へのアクセス
ループが完了すると、すべての反復の出力に.JSON配列としてアクセスできます。各反復の出力は、有効な.JSONファイルである必要があります。
定義可能で、フィールドで選択するループタイプは4種類あります:
-
withSequence
-
withItems
-
withComplexItems
-
withParam
withSequenceループを使用すると、ワークフロー内で数値のシーケンスを反復処理したり、値の範囲を生成したりできます。
一連のステップを指定した回数だけ繰り返したり、値の範囲に基づいて操作を実行したりするために使用できます。
サンプルのwithSequenceループを作成するには、以下の手順に従ってください:
-
空欄のブロックを選択し、設定を開きます。
-
編集ループをクリックします。
設定オプションが表示されます。
-
フィールドから、withSequenceを選択します。
-
フィールドにループの反復回数を入力します。
-
オプションで、ループの開始値や終了値を入力します。
-
保存をクリックします。
-
設定から、編集をクリックします。
設定オプションが表示されます。
-
フィールドに
{{ @item }}と入力し、保存をクリックします。この値は実行時に変換されます。
例えば、countが3に設定され、開始値が2の場合、このループの結果は次のようになります。
-
loop list => ["2", "3", "4"] -
反復に基づいて、
{{ @item }} => 2または3または4となります。
withItemsループを使用すると、アイテムの一覧を反復処理できます。
アイテムの一覧に基づいて操作を実行する必要がある場合に使用できます。
サンプルのwithItemsループを作成するには、次の手順に従います。
-
空欄のブロックを選択し、設定を開きます。
-
編集ループをクリックします。
設定オプションが表示されます。
-
フィールドから、withItemsを選択します。
-
フィールドに
enと入力し、+Itemをクリックします(別のフィールドが作成されます)。 -
2番目のフィールドに
deと入力し、3番目のフィールドを作成します。 -
3番目のフィールドに
frと入力し、4番目のフィールドを作成します。 -
4番目のフィールドに
usと入力します。 -
保存をクリックします。
-
設定から、編集をクリックします。
設定オプションが表示されます。
-
フィールドに
{{ @item }}と入力し、保存をクリックします。この値は実行時に変換されます。
このループの結果は、言語コードの一覧に対する反復処理になります。
-
loop list => ["en", "de", "fr", "ua"] -
{{ @item }} => enまたはde .. ua
withComplexItems ループを使用すると、オブジェクトの一覧を反復処理できます。
複雑なアイテムの一覧に基づいて操作を実行する必要がある場合に使用できます。
サンプル withComplexItems ループを作成するには、以下の手順に従います:
-
空欄のブロックを選択し、設定を開きます。
-
編集ループをクリックします。
設定オプションが表示されます。
-
フィールドから withComplexItems を選択します
-
+キー:value をクリックして、2つ目のキーを追加します。
-
については、以下を入力します:
-
-
: name
-
: プロジェクト 1
-
-
-
: ID
-
: 11
-
-
-
+Object をクリックして2つ目のオブジェクトを追加し、+キー:value をクリックして2つ目のキーを追加します。
-
については、以下を入力します:
-
-
: name
-
: プロジェクト 2
-
-
-
: ID
-
: 22
-
設定サンプル:
-
-
設定から、編集をクリックします。
設定オプションが表示されます。
-
フィールドに
{{ @item.name }}と入力し、保存をクリックします。この値は実行時に変換されます。
このループの結果は、プロジェクトの一覧に対する反復処理となります:
-
一覧をループ=>[ { "name": "Project 1", "id": 11 }, { "name": "Project 2", "id": 22 } ] -
{{ @item }}=>{ "name": "Project 1", "id": 11 } -
{{ @item.name }}=>プロジェクト 1 -
{{ @item.id }}=>11
withParam ループを使用すると、以前のタスクまたはトリガーから出力された動的な一覧を反復処理できます。
このループは、パラメータフィールドの参考資料としてのみ使用されます。
例:
タスク (Strings: リリースを公開) の出力:
{
"created_at": "2015-01-28T09:52:53Z",
"environments": ["development", "production"],
"id": "abcd1234cdef1234abcd1234cdef1234",
"locales": [
{
"code": "en-GB",
"id": "abcd1234cdef1234abcd1234cdef1234",
"name": "English"
},
{
"id": "abcd5678cdef5678abcd5678cdef5678",
"name": "German",
"code": "de_DE"
}
],
"platforms": ["android"],
"project": {
"created_at": "2015-01-28T09:52:53Z",
"id": "abcd1234cdef1234abcd1234cdef1234",
"main_format": "xml",
"name": "My Android Project",
"updated_at": "2015-01-28T09:52:53Z"
},
"updated_at": "2015-01-28T09:52:53Z",
"version": 1
}
ループ設定 が {{ $.locales }} に設定されている場合:
-
一覧をループ=>[ { "code": "en-GB", "id": "abcd1234cdef1234abcd1234cdef1234", "name": "English" }, { "id": "abcd5678cdef5678abcd5678cdef5678", "name": "German", "code": "de_DE" } ] -
最初
{{ @item }}=>{ "code": "en-GB", "id": "abcd1234cdef1234abcd1234cdef1234", "name": "English" } -
{{ @item.code }}=>en-GB -
{{ @item.name }}=>English
または {{ $.environments }} が参照されている場合:
-
loop list=>["development", "production"] -
{{ @item }}=>developmentまたはproduction