Orchestrator

Looping

文本由 Phrase Language AI 从英语机器翻译而得。

循环可以在工作流中实现,以根据定义的条件重复一组任务。

循环按顺序执行。最多可以并行运行 4 个步骤。

循环配置可以在块配置的 Advanced 选项卡中访问,或通过右键点击一个块并选择 编辑循环

循环设置需要一个操作对象的列表:

  • 普通的单一值,这些值可以在任务参数中使用,例如{{ @item }}

  • 一个 .JSON 对象,其中对象中的每个元素可以通过其 键 进行访问,例如 {{ @item.key }}

访问循环的聚合结果

所有迭代的 输出 可以在循环完成后作为 .JSON 数组访问。每次迭代的 输出 必须是有效的 .JSON 文件。

可以定义四种循环 类型,并在 loop_with 字段中 选择:

  • 按序列

  • 按条目

  • 按复杂条目

  • 按参数

按序列

按序列循环允许对一系列数字进行迭代或在工作流中生成一系列值。

它可以用于重复一组步骤特定次数或根据一系列值执行操作。

要创建一个示例 按序列 循环,请按照以下步骤操作:

  1. 选择一个空块并打开循环配置。

  2. 点击 编辑循环

    loop_with 配置选项已呈现。

  3. loop_with 字段中,选择 按序列

  4. Count 字段中输入循环迭代次数。

  5. 可选地,输入循环应开始和/或结束的值。

  6. 点击 保存循环

  7. Parameters 配置中,点击 编辑参数

    配置选项已呈现。

  8. Message 字段中,输入 {{ @item }} 并点击 保存参数

    该值将在运行时转换。

例如,如果计数设置为 3,起始值为 2,则此循环的结果将是:

  • 循环列表 => ["2", "3", "4"]

  • {{ @item }} => 234,基于迭代

按条目

按条目 循环允许对条目列表进行迭代。

当需要根据条目列表执行操作时,可以使用它。

要创建一个示例 按条目 循环,请按照以下步骤操作:

  1. 选择一个空块并打开 循环 配置。

  2. 点击 编辑循环

    loop_with 配置选项已呈现。

  3. loop_with 字段中,选择 按条目

  4. variable 字段中输入 en,并点击 +条目(创建另一个 variable 字段)。

  5. 在第二个 variable 字段中输入 de 并创建第三个字段。

  6. 在第三个 variable 字段中输入 fr 并创建第四个字段。

  7. 在第四个 variable 字段中输入 us

  8. 点击 保存循环

  9. Parameters 配置中,点击 编辑参数

    配置选项已呈现。

  10. Message 字段中,输入 {{ @item }} 并点击 保存参数

    该值将在运行时转换。

此循环的结果将是对语言代码列表的迭代:

  • 循环列表 => ["en", "de", "fr", "ua"]

  • {{ @item }} => ende .. ua

按复杂条目

按复杂条目 循环允许对对象列表进行迭代。

当需要基于复杂条目列表执行操作时,可以使用它。

要创建一个示例 按复杂条目 循环,请按照以下步骤操作:

  1. 选择一个空块并打开循环配置。

  2. 点击 编辑循环

    loop_with 配置选项已呈现。

  3. loop_with 字段中,选择 按复杂条目

  4. 点击 +键:value 以添加第二个键。

  5. 对于Object 1,输入以下内容:

    • 键:值1

      • 键 (可选):名称

      • (可选):项目 1

    • 键:值2

      • 键 (可选):ID

      • (可选):11

  6. 点击 +Object 以添加第二个对象,并点击 +键:value 以添加第二个键。

  7. 对于Object 2,输入以下内容:

    • 键:值1

      • 键 (可选):名称

      • (可选):项目 2

    • 键:值2

      • 键 (可选):ID

      • (可选):22

    设置示例:

    Loop with Complex Items Example
  8. Parameters 配置中,点击 编辑参数

    配置选项已呈现。

  9. Message 字段中,输入 {{ @item.name }} 并点击 保存参数。该值将在运行时转换。

此循环的结果将是对项目列表的迭代:

  • 循环列表 =>

    [
      {
        "name":"项目 1",
        "ID":11
      },
      {
        "name":"项目 2",
        "ID":22
      }
    ]
  • {{ @item }} =>

    {
      "name":"项目 1",
      "ID":11
    }
  • {{ @item.name }} => 项目 1

  • {{ @item.id }} => 11

按参数

按参数 循环允许对任何先前任务或触发器输出的动态列表进行迭代。

此循环仅用作参数字段中的参考。

例如:

任务的输出 (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 项目"
    "updated_at":"2015-01-28T09:52:53Z"
  },
  "updated_at":"2015-01-28T09:52:53Z",
  "version":1
}

如果循环设置 withParam 设置为 {{ $.locales }},则:

  • loop list =>

    [
      {
        "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 }} => developmentproduction

这篇文章有帮助吗?

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.