Orchestrator

循环

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

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

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

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

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

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

访问循环的汇总结果

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

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

  • withSequence

  • withItems

  • withComplexItems

  • withParam

withSequence

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

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

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

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

  2. 点击编辑循环

    循环类型配置选项被呈现。

  3. 循环类型字段中,选择带序列

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

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

  6. 点击 保存循环

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

    配置选项已呈现。

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

    该值将在运行时转换。

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

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

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

带有项目

带有项目 循环允许对项目列表进行迭代。

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

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

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

  2. 点击编辑循环

    循环类型配置选项被呈现。

  3. 循环_with 字段中,选择 带有项目

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

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

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

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

  8. 点击 保存循环

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

    配置选项已呈现。

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

    该值将在运行时转换。

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

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

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

withComplexItems

withComplexItems 循环可以对对象列表进行迭代。

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

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

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

  2. 点击编辑循环

    循环类型配置选项被呈现。

  3. loop_with 字段中,选择 withComplexItems

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

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

    • Key: Value1

      • key (可选): 名称

      • (可选): 项目 1

    • Key: Value2

      • key (可选): ID

      • (可选): 11

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

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

    • Key: Value1

      • key (可选): 名称

      • (可选): 项目 2

    • Key: Value2

      • key (可选): ID

      • (可选): 22

    设置示例:

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

    配置选项已呈现。

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

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

  • loop list =>

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

    {
      "name": "项目 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": "我的安卓项目",
    "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 }} => 英语

或者如果 {{ $.environments }} 被引用,则:

  • loop list => ["development", "production"]

  • {{ @item }} => 开发 或 生产

这篇文章有帮助吗?

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.