ループは、定義された条件に基づいて一連のタスクを繰り返すためにワークフロー内で実装できます。
ループの設定は、ブロック設定のタブでアクセスするか、ブロックを右クリックしてを選択することで行います。
ループ設定には、操作対象の項目の一覧が必要です:
-
単純な単一の値で、これは
{{ @item }}のようなタスクパラメータで使用可能です。 -
.JSONオブジェクトで、オブジェクト内の各要素は
{{ @item.key }}のようにそのキーでアドレス指定できます。
ループの集計結果にアクセスする
すべての反復の出力は、ループが完了すると.JSON配列としてアクセスできます。各反復の出力は、有効な.JSONファイルでなければなりません。
定義できるループのタイプは4つあり、フィールドで選択されます:
-
withSequence
-
withItems
-
withComplexItems
-
withParam
シーケンスありループは、数のシーケンスを反復するか、ワークフロー内で値の範囲を生成することを可能にします。
特定の回数だけ一連のステップを繰り返すか、値の範囲に基づいて操作を実行するために使用できます。
サンプルのシーケンスありループを作成するには、次の手順に従ってください:
-
空のブロックを選択し、設定を開きます。
-
ループを編集をクリックします。
設定オプションが表示されます。
-
フィールドから、シーケンスありを選択します。
-
フィールドにループの反復回数を入力します。
-
オプションで、ループが開始する値と/または終了する値を入力します。
-
ループを保存をクリックします。
-
の設定から、パラメータを編集をクリックします。
設定オプションが表示されます。
-
フィールドに
{{ @item }}を入力し、パラメータを保存をクリックします。この値は実行時に変換されます。
例えば、カウントが3に設定され、開始値が2の場合、このループの結果は次のようになります:
-
loop list => ["2", "3", "4"] -
{{ @item }} => 2または3または4、イテレーションに基づいて
アイテムと共にループは、アイテムのリストを反復処理することを可能にします。
アイテムのリストに基づいて操作を実行する必要がある場合に使用できます。
サンプルのアイテムと共にループを作成するには、次の手順に従います:
-
空のブロックを選択し、設定を開きます。
-
ループを編集をクリックします。
設定オプションが表示されます。
-
フィールドから、アイテムと共にを選択します。
-
enをフィールドに入力し、+アイテムをクリックします(別のフィールドが作成されます)。 -
2番目のフィールドに
deを入力し、3番目のフィールドを作成します。 -
3番目のフィールドに
frを入力し、4番目のフィールドを作成します。 -
4番目のフィールドに
usを入力します。 -
ループを保存をクリックします。
-
の設定から、パラメータを編集をクリックします。
設定オプションが表示されます。
-
フィールドに
{{ @item }}を入力し、パラメータを保存をクリックします。この値は実行時に変換されます。
このループの結果は、言語コードのリストを反復処理したものになります:
-
loop list => ["en", "de", "fr", "ua"] -
{{ @item }} => jaまたはde .. ua
複雑なアイテムを含むループは、オブジェクトの一覧を反復処理することを可能にします。
複雑なアイテムの一覧に基づいて操作を実行する必要がある場合に使用できます。
サンプルの複雑なアイテムを含むループを作成するには、次の手順に従ってください:
-
空のブロックを選択し、設定を開きます。
-
ループを編集をクリックします。
設定オプションが表示されます。
-
フィールドから、複雑なアイテムを含むを選択します。
-
+キー:値をクリックして、2つ目のキーを追加します。
-
について、次の内容を入力します:
-
-
: 名前
-
: プロジェクト 1
-
-
-
: ID
-
: 11
-
-
-
+オブジェクトをクリックして、2つ目のオブジェクトを追加し、+キー:値で2つ目のキーを追加します。
-
について、次の内容を入力します:
-
-
: 名前
-
: プロジェクト 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 }}=>開発または本番