工作流节点--子流程节点
使用子流程的场景
同一数据表,通过不同方式触发相同业务逻辑
例如,一个报销审批流程,新增记录时触发审批流,也可以先保存为草稿,后面再点击按钮触发审批流程。虽然触发方式不同,但是审批流程(都谁审批)相同的,因此可以将开始审批的流程作为子流程,当作通用流程,无论是新增记录还是点击按钮触发,都可以直接调用子流程,开始审批。
批量处理数据超过100条时,使用子流程
当流程中需要处理的批量数据太多(超过100条),则可以通过子流程处理,子流程可批量处理的数据量为100万行以内。
批量处理数据时,需要根据数据内容走不同的分支逻辑
从外部获取到50条数据,有的数据工作表里没有需要新增,有的数据已经存在只需要更新。此时不能直接使用更新节点批量更新,而是将多条数据传给子流程,在子流程中先查找是否存在,然后进行新增或更新的处理。
传给子流程的数据可以是单条记录,也可以多条表记录或多行数据(Wehook、代码块的数组,人工节点的操作详情)。单次执行子流程时不计费,计不累加组织内工作流执行次数。
场景举例
示例一:可重复使用的流程如何作为子流程被复用
新增记录时触发审批流程,点击按钮时也触发审批流程,如何配置子流程。
1、新增记录时,只需配置触发器节点,第二个节点即可直接添加一个子流程
A: 选择 将哪个节点对象记录的数据 传给 子流程
B:点击下方的 保存按钮后,会自动生成一个 子流程。
C:如果勾选, 那么会等待子流程执行完毕后,才会执行后面的节点(发送站内通知);如果不勾选, 那么子流程和后续的节点同时进行,子流程的执行结果对当前流程没有任何影响了。
2、进入子流程
3、配置子流程
将审批的全流程配置在子流程中, 最后发布流程。
4、自定义动作的流程,如何引用 已经建好的流程。
在按钮点击触发后,直接添加子流程节点,选择 已有的子流程 即可。
Tips
选择子流程时, 只能选择 【子流程】类型, 不能选择 工作表时间触发、按日期字段触发、定时触发、Webhook触发和自定义按钮触发的流程。
子流程不能独立创建,而在主流程中才能创建并使用
工作流消耗次数: 根据示例的流程配置,主流程执行1次,子流程执行1次 ,共消耗2次。
示例二 、批量数据处理
每天定时清理某个中间表数据,获取表中数据后进行删除。但是如果获取到的记录大于1000时,无法通过"查询并批量删除”节点删除(最大支持1000行)。 此场景需通过子流程逐条删除。如下图:在获取批量数据后,传递给子流程执行。
选择数据对象
选择将哪个节点的数据传给子流程,这里我们选择的是获取多条数据节点。
最大数据上限
当多条数据元是工作表数据时,会有此配置。
勾选"获取工作表所有记录"后,最大支持获取100万行数据。也可以自定义获取记录的上限,默认5万。
如果数据源不是工作表,如来说代码块、PBP、发送API请求节点的数组数据,最大接收处理1万行。
多条数据执行执行方式
并行: 如果这些记录是各自处理各自的内容,则并行即可,当前示例就可以选择并行。
逐条执行,中止时不再触发后续子流程: 多个数据对象将依次执行流程。每条子流程需要等前一条子流程通过后再开始触发;如果某条子流程运行中止,则后续的子流程都不再触发,直接执行子流程节点的后续节点。
逐条执行,中止时继续下一条: 如果某条子流程运行中止,则跳过该条继续执行下一条子流程
子流程的配置如下:
子流程处理逻辑:
例如,主流程传过来了500条记录, 每条记录都会执行一遍子流程, 即每条记录更新了自己的任务状态字段,子流程也就执行了500次,消耗500条。 一共消耗501次流程(1条主流程+500子流程)
文档问题反馈
文档中是否有错别字、内容过期、难以理解等问题? 点此给我们反馈吧