跳到主要内容

工作流节点--子流程节点


使用子流程的场景

  • 同一数据表,通过不同方式触发相同业务逻辑

    例如,一个报销审批流程,新增记录时触发审批流,也可以先保存为草稿,后面再点击按钮触发审批流程。虽然触发方式不同,但是审批流程(都谁审批)相同的,因此可以将开始审批的流程作为子流程,当作通用流程,无论是新增记录还是点击按钮触发,都可以直接调用子流程,开始审批。

  • 批量处理数据超过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子流程)


文档问题反馈

文档中是否有错别字、内容过期、难以理解等问题? 点此给我们反馈吧