使用工作流的循环功能

使用工作流的循环功能

本文阅读时长:10 分钟
本功能版本说明
标准版
基础版
专业版
旗舰版
5 次
5 次
1,000 次
1,000 次
上述数字指的是不同付费版本下,单节点的最大循环次数。Lark 基础版仅支持特定的国家和地区。如需咨询或升级版本,请联系客服或客户成功经理。
一、功能简介
多维表格工作流支持“循环”的逻辑。通过设定规则,它可以重复执行相同的操作,直到任务完成。
:只有“数组”类型的数据才能使用循环。数组是由相同类型的元素(element)的集合所组成的数据结构。例如通过“查找记录”找到的所有符合条件的记录,或是满足条件的某列值(支持选择人员、群组、附件字段)。
常见使用场景:
  • 待办清单定向推送:每周查找状态为“进行中”的任务,并给对应的任务负责人分别发送消息提醒,消息中只包含自己所负责的任务信息,实现数据隔离,让信息更聚焦。
  • 面试记录数据隔离:针对所有当天已完成的面试,自动为每位面试官创建一条新记录用于记录面试结果,并发送消息邀请填写。面试官点击消息卡片中的按钮,可直接填写并记录在多维表格中,不会看到其他面试官的结果,也不会收到与自己无关的通知。
  • 向多个群组批量添加群成员:若一个群组字段中添加了多个群组,使用循环功能可以便捷地将人员一次性添加到多个群组中。
有关更详细的循环场景实践,请参考工作流循环功能场景实践
二、操作流程
功能入口
  1. 打开多维表格,点击左下角的 工作流 创建一个工作流。
  1. 选择你需要的触发条件后,点击带有 就执行操作 字样的按钮,选择 循环 的执行操作。
  • :一个工作流中最多可添加 5 个循环节点。
250px|700px|reset
循环节点设置
循环节点设置,指的是下图中,对 循环 这一节点的具体设置。
250px|700px|reset
“循环”节点本身支持如下设置:
  • 循环方式:目前支持 依次处理每条数据(for each)的循环方式,即:对一组数据依次执行相同的操作。例如,给任务清单中的每项任务的负责人发送催办,或将任务清单中的每项任务都标记为完成。
  • :“条件满足时,继续执行循环”(while)的循环方式尚未上线。
  • 需要依次处理的数据:当循环方式选择了 依次处理每条数据 时,需设置此项。此处仅支持引用前序步骤中产生的数据,且只能引用“数组”类型的数据。具体可选的数组如下:
  • HTTP 请求或 webhook 触发所输出的 json.array。
  • 当触发条件为 添加新记录时修改记录时新增/修改的记录满足条件时到达记录中的时间时,或是当执行操作为 新增记录修改记录 时,可选择这些步骤中输出的人员、群组和附件字段。
  • :同一个单元格中可存在多个人员、群组、附件。
  • 查找记录 操作输出的 查找到的所有记录查找到的所有记录的某列值。“查找到的某列值”同样仅支持人员、群组和附件字段。
  • 最大循环次数:在此处输入你希望此节点循环的最大次数。当循环次数达到最大时,将不再执行后续循环。不同付费版本下,单节点的最大循环次数不同,详情可参考下表。
Lark 版本
标准版
基础版
专业版
旗舰版
单节点最大循环次数
5 次
5 次
1,000 次
1,000 次
  • 若循环出错时 的处理方式:在整个循环的执行过程中,若其中某一次出现了错误,你可以选择 仅跳过当次循环,继续执行后续循环终止执行,流程失败 两种处理方式。
  • 若你选择了 仅跳过当次循环,继续执行后续循环 的选项,流程运行时可能会出现“部分运行成功、部分运行失败”的情况。你可以在运行日志中查看具体的运行情况。
循环体设置
设置好循环节点后,你需要设置循环体,即要循环的具体执行动作。
循环体设置,就是指在下图中的循环圆圈内添加各种执行操作。
250px|700px|reset
添加循环操作
点击圆圈上的 + 图标,你可以选择一系列执行操作,也可以选择继续添加 循环 节点,实现循环逻辑的嵌套。循环体内不支持添加 条件判断 操作。在一个工作流中,最多可嵌套 3 层循环。
250px|700px|reset
使用循环数据
在循环节点之后的步骤可以引用循环节点输出的数据,主要分为 当前循环数据当前循环轮数 两类。
当循环的数组是一个字段的值时,你可以直接选择 当前循环数据;当循环的数组是 查找到的所有记录 时,你需要点击 继续 选择具体的字段。
250px|700px|reset
:循环输出的数据,只能在循环体内(即循环的 loop 内)使用。循环结束后的所有节点,无法引用循环数据。
三、应用案例
本文以“向指定人推送指定记录”的场景为例,对循环功能的实际使用进行简单的说明。
业务场景
在进行任务管理时,你可能需要向负责人推送自己的待办清单,消息中只包含自己所负责的任务信息,实现数据隔离。
在未使用循环功能时,易出现的错误配置为,向“任务负责人”这个人员字段中的每个人都发送了全部的任务清单,可能导致信息冗杂或数据泄漏。使用循环功能,你就可以配置出“定期、定向发送待办清单”的效果。
流程总览如下:
250px|700px|reset
操作步骤
前置准备:打开任务管理的多维表格,数据表中已记录了任务名称、优先级、任务负责人、状态等信息,你可根据业务需要进行自定义。接下来,创建一个工作流。
250px|700px|reset
  1. 选择 定时触发 的触发条件。设置时间为周一早上 10 点,并选择 每周重复
  1. 添加一个 查找记录 的操作,查找所有进行中的任务。选择任务所在的数据表,并设置筛选条件为 状态 等于 进行中。按需设置查找内容,此处我们选择“任务负责人”字段。
250px|700px|reset
  1. 添加一个 循环 的操作,并进行循环节点设置。
  1. 选择 依次处理每条数据 的循环方式。
  1. 需要依次处理的数据 处,点击输入框,将鼠标悬停在 2.查找记录 上并点击 继续,再悬停在 查找到的所有记录的某列值 上并点击 继续,选择 任务负责人
250px|700px|reset
250px|700px|reset
  1. 按需设置 最大循环次数 和循环出错时的处理方式。
  • 完成上述设置后,意味着你将会对“第二步找到的所有记录”中的“任务负责人”字段执行完全一致的操作。
接下来,在循环体内,设置需循环执行的具体操作。先查找该人员负责的所有任务,再发送消息提醒。
250px|700px|reset
  1. 添加一个 查找记录 的操作,并添加两个筛选条件:状态 等于 进行中任务负责人 包含 3.循环 > 当前循环数据
  • 按需设置你想要查找的字段内容,此处设置为“任务名称”“任务负责人”“状态”“最新进展记录”。
250px|700px|reset
250px|700px|reset
  1. 添加一个 发送 Lark 消息 的操作。在 接收方 处,选择之前步骤产生的数据,选择 3.循环 > 当前循环数据
  • 按需设置消息标题和内容。在消息内容中,你可以点击 ⊕ 引用值 引用循环数据,例如引用任务负责人姓名及对应的任务。
250px|700px|reset
250px|700px|reset
配置效果
以此案例为例,当前数据表中状态为 进行中 的任务有 4 条,负责人分别是 Alice陈一一
250px|700px|reset
在完成配置后,二人分别会收到自己所负责的任务提醒,不会看到其他任务。效果如下:
250px|700px|reset
250px|700px|reset
四、常见问题
问:在工作流的循环已经开始后,如果我对数据表内容做了修改,是否会影响循环?
答:不会影响。循环被触发之后,循环的次数和内容就已经确定,是不可变更的数据。
问:含有循环节点的工作流,是否有运行时长的上限?
答:流程执行时间最多为 3 小时,超出 3 小时的工作流会出现报错。
问:在一个工作流中,最多可添加几个循环节点?
答:5 个。
问:在一个工作流中,最多可嵌套几层循环?
答:3 层。
250px|700px|reset
问:使用工作流的循环功能时,运行次数是如何计算的?
答:按整个工作流的执行次数计算,而不是“每循环一次就消耗一次运行次数”。你也可以查看工作流的运行日志,一行“运行状态”就会对应一次次数。以图中的运行日志为例,该流程虽然循环了 4 次,但只会计算为 1 次运行次数。
250px|700px|reset
作者Lark 帮助中心
最后更新于2025-02-27
评价此内容
提交成功,感谢你的反馈!
未能解决你的问题?请联系在线客服
rangeDom
rangeDom
rangeDom
rangeDom
rangeDom
rangeDom