Orchestrator

ループ処理

本コンテンツはPhrase Language AIの機械翻訳により、英語から翻訳されています。

ループはワークフロー内に実装でき、定義された条件に基づいて一連のタスクを繰り返すことができます。

ループ設定には、ブロック設定のAdvancedタブ、またはブロックを右クリックして編集ループを選択することでアクセスできます。

ループ設定には、操作対象となる一覧が必要です:

  • 単純な単一の値。これは、{{ @item }}などのタスクパラメータで使用できます。

  • .JSONオブジェクト。オブジェクト内の各要素は、{{ @item.key }}などのキーで指定できます。

ループの集計結果へのアクセス

ループが完了すると、すべての反復の出力に.JSON配列としてアクセスできます。各反復の出力は、有効な.JSONファイルである必要があります。

定義可能で、loop_withフィールドで選択するループタイプは4種類あります:

  • withSequence

  • withItems

  • withComplexItems

  • withParam

withSequence

withSequenceループを使用すると、ワークフロー内で数値のシーケンスを反復処理したり、値の範囲を生成したりできます。

一連のステップを指定した回数だけ繰り返したり、値の範囲に基づいて操作を実行したりするために使用できます。

サンプルのwithSequenceループを作成するには、以下の手順に従ってください:

  1. 空欄のブロックを選択し、Loop設定を開きます。

  2. 編集ループをクリックします。

    loop_with設定オプションが表示されます。

  3. loop_withフィールドから、withSequenceを選択します。

  4. Countフィールドにループの反復回数を入力します。

  5. オプションで、ループの開始値や終了値を入力します。

  6. 保存をクリックします。

  7. Parameters設定から、編集をクリックします。

    設定オプションが表示されます。

  8. Messageフィールドに{{ @item }}と入力し、保存をクリックします。

    この値は実行時に変換されます。

例えば、countが3に設定され、開始値が2の場合、このループの結果は次のようになります。

  • loop list => ["2", "3", "4"]

  • 反復に基づいて、{{ @item }} => 2または3または4となります。

withItems

withItemsループを使用すると、アイテムの一覧を反復処理できます。

アイテムの一覧に基づいて操作を実行する必要がある場合に使用できます。

サンプルのwithItemsループを作成するには、次の手順に従います。

  1. 空欄のブロックを選択し、Loop設定を開きます。

  2. 編集ループをクリックします。

    loop_with設定オプションが表示されます。

  3. loop_withフィールドから、withItemsを選択します。

  4. variableフィールドにenと入力し、+Itemをクリックします(別のvariableフィールドが作成されます)。

  5. 2番目のvariableフィールドにdeと入力し、3番目のフィールドを作成します。

  6. 3番目のvariableフィールドにfrと入力し、4番目のフィールドを作成します。

  7. 4番目のvariableフィールドにusと入力します。

  8. 保存をクリックします。

  9. Parameters設定から、編集をクリックします。

    設定オプションが表示されます。

  10. Messageフィールドに{{ @item }}と入力し、保存をクリックします。

    この値は実行時に変換されます。

このループの結果は、言語コードの一覧に対する反復処理になります。

  • loop list => ["en", "de", "fr", "ua"]

  • {{ @item }} => en または de .. ua

withComplexItems

withComplexItems ループを使用すると、オブジェクトの一覧を反復処理できます。

複雑なアイテムの一覧に基づいて操作を実行する必要がある場合に使用できます。

サンプル withComplexItems ループを作成するには、以下の手順に従います:

  1. 空欄のブロックを選択し、Loop設定を開きます。

  2. 編集ループをクリックします。

    loop_with設定オプションが表示されます。

  3. loop_with フィールドから withComplexItems を選択します

  4. +キー:value をクリックして、2つ目のキーを追加します。

  5. Object 1 については、以下を入力します:

    • Key: Value1

      • キー (オプション): name

      • (オプション): プロジェクト 1

    • Key: Value2

      • キー (オプション): ID

      • (オプション): 11

  6. +Object をクリックして2つ目のオブジェクトを追加し、+キー:value をクリックして2つ目のキーを追加します。

  7. Object 2 については、以下を入力します:

    • Key: Value1

      • キー (オプション): name

      • (オプション): プロジェクト 2

    • Key: Value2

      • キー (オプション): ID

      • (オプション): 22

    設定サンプル:

    Loop with Complex Items Example
  8. Parameters設定から、編集をクリックします。

    設定オプションが表示されます。

  9. Messageフィールドに{{ @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

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
}

ループ設定 withParam{{ $.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

この記事は役に立ちましたか?

Sorry about that! In what way was it not helpful?

The article didn’t address my problem.
I couldn’t understand the article.
The feature doesn’t do what I need.
Other reason.

Note that feedback is provided anonymously so we aren't able to reply to questions.
If you'd like to ask a question, submit a request to our Support team.
Thank you for your feedback.