Skip to main content
迭代器可让你遍历记录数组,并对其中每一项执行操作。 对于需要处理由搜索记录返回或通过 Webhook 接收的多条记录的工作流,它至关重要。

何时使用迭代器

了解迭代器

迭代器需要一个数组作为输入。 然后:
  1. 从数组中取出第一个元素
  2. 使用该元素运行迭代器内的所有操作
  3. 移动到下一个元素
  4. 重复,直到所有元素处理完毕

选择要循环的数组

大多数数组来源(Search Records、Webhook 数组字段、Bulk manual trigger)都可以直接在变量选择器中选择。 CodeLogic Function 步骤返回一个顶级数组时,其输出会在变量选择器中显示为带索引的条目(012,…)。 若要对整个数组进行循环,请为该步骤选择 Whole list 选项 — Iterator 会自动从列表中推断每个项目的结构。

基本设置

示例:向搜索结果中的所有人发送电子邮件

目标:查找特定公司的所有联系人,并向每个人发送个性化电子邮件。

步骤 1:搜索记录

  1. 添加 搜索记录 操作
  2. 对象:People
  3. 筛选条件:公司等于 “Acme Inc”
  4. 这将返回一个人员数组

步骤 2:检查是否有结果

  1. 添加 过滤 操作
  2. 条件:{{searchRecords.length}} 大于 0
  3. 这可防止在结果为空时出现迭代器错误

步骤 3:添加迭代器

  1. 添加 Iterator 操作
  2. 数组输入:选择 {{searchRecords}}
  3. 这会创建一个循环

步骤 4:在迭代器内添加操作

在迭代器之后放置的操作会针对每个项运行:
  1. 添加 Send Email 操作(在迭代器内)
  2. 收件人:{{iterator.currentItem.email}}
  3. 主题:你好,{{iterator.currentItem.firstName}}
  4. 正文:使用当前项字段的个性化消息

结果

如果 Search Records 返回 5 个人,迭代器将:
  • 向第 1 个人发送电子邮件
  • 向第 2 个人发送电子邮件
  • … 对全部 5 人继续执行

访问当前项数据

在迭代器内,使用 {{iterator.currentItem}} 访问当前记录: 在变量选择器中,你可以深入当前项目的特定字段,或者选择 Use the whole item 来引用整个当前项目({{iterator.currentItem}})。 在你希望将完整记录直接传入下游步骤,而不是逐个字段重新构建时,选择整个项目会非常方便。

常见模式

更新多条记录

目标:将所有逾期任务标记为 “Late”

从数组创建记录

目标:Webhook 接收到包含多个项目的订单,为每个项目创建一条记录。

在循环内进行条件处理

目标:仅向电子邮件地址有效的联系人发送邮件

故障排除

”迭代器需要一个数组”

原因:你传递的是单个记录而不是数组。 修复方法:请确保传递的是 Search Records 的结果或数组字段,而不是单个记录。

迭代器未运行

原因:数组为空。 修复方法:在迭代器之前添加筛选条件以检查数组长度:

操作运行次数过多

原因:Search Records 返回的记录数超出预期。 修复方法
  • 在 Search Records 中添加更具体的筛选条件
  • 在 Search Records 中设置限制(最多 200)
  • 在迭代器内部添加筛选条件用于附加条件

性能注意事项

  • 额度使用:每次迭代都会为其操作消耗额度
  • 时间:较大的数组处理时间更长
  • 限制:对于非常大的操作,考虑分批处理
  • 速率限制:大量迭代的外部 API 调用可能触发速率限制

最佳实践

  1. 在迭代器之前始终检查数组长度,以避免错误
  2. 当并非所有项都需要处理时,在循环中添加筛选条件
  3. 重命名你的迭代器步骤,以描述它正在遍历的内容
  4. 先使用小数组进行测试,再处理大型数据集
  5. 监控工作流运行,以确保迭代按预期完成

相关内容