工作流节点--获取多条数据
节点功能
工作流中支持获取多条记录,然后可以对这些记录进行批量修改,或者将这些记录批量新增到其他表中,也可以传递给子流程依次处理。(支持获取前XXX行数据)
获取多条数据的6种方式
1、从某个工作表中获取多条记录
2、从一条记录中获取他所关联的多条记录
此方式最多获取1000条关联记录,如果超过1000条,请使用“从某个工作表中获取多条记录”的方式。
3、从新增记录节点中获取
- 新增记录节点支持批量新增,因此可以再次获取到批量新增的多条记录。
4、从人工节点获取操作明细
- 可以获取某个审批/填写节点的操作数据。 操作人员、时间、意见、签名等。
5、从发送API请求节点中获取数据
- 通过Webhook可以传过来一个数组,可以通过数组获取到批量数据。
6、从代码块数组获取数据
- 代码块可以输出一个数组,因此可获得输出的批量数据。
获取的数据行数
“获取批量数据节点” 本身会查询到所有符合条件的记录,被不同节点使用操作时,处理的数据行数是不同的。
被“新增节点”、“更新节点”、“删除节点”批量操作使用时,最多处理100条(建议设置最多获取100条);
传给“子流程”处理时,最多处理1万条(建议设置最多获取1万条);
“运算节点”统计其获取的数据行数,则会统计所有满足查询条件的记录,即使获取多条数据节点设置最多获取XX条也会忽略。
如下图配置:获取批量节点的查询条件是编号小于200的记录,实际会有199条记录满足条件。此时节点又设置了最多获取条数(90)。因此统计获取的条数是结果是199, 被批量删除了90行记录。
场景举例
《项目》和《任务》是有关联关系的两张表,一个项目可以关联多个任务。当完成项目并将状态标记为“已完成”,批量获取到关联的任务,然后将这些任务也修改为“已完成”。
1、创建工作表事件触发的工作流
工作表选择《项目》表
触发方式选择 “仅更新记录”时触发,指定项目状态为触发字段
筛选条件设置项目状态 =已结束。
- 这样筛选的效果是,仅仅更新项目状态时,且更新的状态为 已结束,才会触发流程,避免浪费资源。
2、添加“获取多条数据”节点
并选择第二个方式:从记录获取关联记录
3、配置“获取多条数据”节点
A:选择节点对象
- 即从哪条记录中获得它关联的记录,这里我们选择的是触发流程的那条记录。
B:选择关联类型的字段
- 选择一个关联表字段,这个关联关联必须是多条类型的。因为一个表可能关联多个他表字段,所以要选择一个关联字段,我们选择 “任务”这个关联字段
C:筛选条件
- 对所关联的记录进行筛选,只获取需要的记录。例如,项目中关联了3条,但是呢,有的记录已经完成了,那就不需要再获取到了,直接排除即可。
D:排序规则
- 设定一个排序规则,按此规则排序后返回记录列表。
E:限制数量
可以设定最多获取N行数据,N可以是手动写入的固定值,也可以选择一个数值字段。例如查询时,满足条件的记录有200条,但是我们只需删除60条,就可以设定最多获取60条。如果不设定数量,获取批量数据节点最多只能获取到100行,如果传给子流程用,最多获取1万行。
如果被新增记录、更新记录、删除记录等3个节点使用时,建议设定最多获取100条,避免报错。
如果需要传给子流程,建议设置最多10000条,避免报错。
保存节点设置
4、批量更新数据
更新的对象: 选择第2个节点获得的多条记录
更新字段: 选择状态=已完成。
4、发布流程。
5、测试。
文档问题反馈
文档中是否有错别字、内容过期、难以理解等问题? 点此给我们反馈吧