工作流的全局配置
在工作流的"配置"页面中可以进行工作流的全局配置,主要分为三大类:流程的基础配置、人工节点的功能配置和流程参数的配置。

一、流程的基础配置
1.流程错误的通知人
当工作流发生错误的时候,可以通知给指 定的人,可以通知给流程的拥有者,或者其他指定的人。如果一段时间内,相同的错误信息不需要通知,则可以设置XX时间内不接收相同错误信息。

-
流程拥有者
默认为流程的创建人,可以更换,有且只能有1个人。
-
同时通知其他人
除了拥有者必须通知外,可以指定通知其他若干人。
通知效果如下:

2.运行方式
同一个工作流可能会因批量操作,同时触发多个流程实例。例如,通过 Excel 导入 100 条数据时,可能瞬间触发 100 次流程。
对于需要同时处理多个流程实例的场景,可以根据业务需求选择 并行执行、顺序执行、严格串行 或 分区严格串行。
四种方式的核心区别在于:流程实例之间是否需要排队,以及排队时是否要等前一个流程完全执行完毕。

可选择运行方式的流程类型
只有以下 3 类流程可以选择运行方式:
-
仅新增记录时和删除记录时触发的流程
常见于通过 Excel 批量导入、新增或删除记录时。例如,一次导入 100 条记录,可能同时触发 100 次流程。

-
自定义动作触发的流程
常见于勾选多条记录后,点击按钮批量触发流程。

其他触发方式均采用并行执行,不支持修改运行方式。
子流程和封装业务流程的运行方式,取决于子流程节点或调用封装业务流程节点中配置的运行方式。

四种运行方式的区别如下:
| 运行方式 | 流程实例如何执行 | 是否等待前一流程完全结束 | 不同业务对象之间 |
|---|---|---|---|
| 并行执行 | 同时执行 | 不适用 | 同时执行 |
| 顺序执行 | 按顺序逐条执行 | 不一定 | 统一排队 |
| 严格串行 | 按顺序逐条执行 | 是 | 统一排队 |
| 分区严格串行 | 同一分区逐条执行 | 是 | 不同分区并行 |
其中,顺序执行与严格串行的主要区别是:顺序执行不一定等待前一个流程完全结束;严格串行则要求前一个流程完全结束后,才开始下一个流 程。
并行执行
并行执行时,多个流程实例同时运行,不保证执行顺序。这种方式速度快,适合流程实例之间互不影响的场景。
例如,在 Bug 管理应用中,有 19 个 Bug 已经修复,需要通知对应的反馈人进行验证。可以批量勾选 19 个 Bug,然后点击【通知验证】按钮执行通知工作流。这 19 个流程互不影响、没有先后顺序要求,因此适合并行执行。
并行执行时的排序: 无序,不保证流程实例的执行顺序。

顺序执行
顺序执行时,多个流程实例按一定顺序逐条启动,适用于流程实例之间存在数据影响、需要控制处理顺序的场景。
例如,在《领用申请》表中,新增一条领用记录后,工作流需要从库存中查询空闲设备并扣减库存。假设笔记本库存为 10 台,3 个人同时提交申请、每人领用 5 台。如果并行执行,3 个流程可能同时查询到库存为 10 台,再分别扣减,导致库存被超额扣减。
此时需要让流程按顺序执行:
- 第 1 个人的申请流程执行时,库存为 10 台,领用 5 台后剩余 5 台。
- 第 2 个人的申请流程执行时,库存为 5 台,领用 5 台后剩余 0 台。
- 第 3 个人的申请流程执行时,库存不足,流程中止。
顺序执行时的排序规则:
- 手动逐条勾选后批量触发:按勾选顺序执行。
- 全选记录后批量触发:按当前页面的排序,从上到下逐条执行。
- 新增记录触发:按记录的创建顺序执行。
前一条流程在什么情况下开始下一条流程
顺序执行并不要求前一条流程完全结束,下一条才开始。出现以下情况时,即可开始执行下一条流程:
- 当前流程正常执行完成。
- 当前流程异常中止。
- 当前流程进入延时节点。
- 当前流程进入审批或填写节点。由于等待时间不确定,进入此类节点后即可开始下一条流程。
- 当前流程进入子流程或封装业务流程。
进入子流程或封装业务流程时,是否等待其执行完成,取决于当前节点的配置:
- 勾选了【等待子流程执行完毕后再执行后续节点】:批量流程排队执行时不会等待子流程执行完成,当前流程进入子流程后即可开始下一条流程。
- 未勾选:当前流程继续执行后续节点,等当前主流程正常执行完毕后,才开始下一条流程。

严格串行
顺序执行只保证流程按顺序启动,遇到延时、审批、填写、子流程或封装业务流程等情况时,可能会提 前开始下一条流程。如果业务要求前一条流程完全结束后,下一条流程才能开始,可以使用严格串行。
严格串行会等待当前流程及其子流程、封装业务流程全部执行完毕,再开始下一条流程。这种方式安全性最高,但速度最慢,因为所有流程实例共用一个全局队列——即使两条流程处理的是完全无关的数据,也必须依次等待。
严格串行方式下,前一条流程在什么情况下开始下一条流程:
- 当前流程完全正常执行完毕,包括流程中的子流程、封装业务流程全部执行完毕。
- 当前流程异常中止。
分区严格串行
严格串行虽然能保证流程完全按顺序执行,但所有流程实例共用一个全局队列。例如,领用 A 物料的流程正在执行时,领用 B 物料的流程也必须等待——对彼此无关的业务对象,这种等待没有必要。
分区严格串行通过将流程实例划分到不同分区,在保证同一业务对象严格串行的同时,让不同业务对象可以并行处理。它的核心不是"按字段排序",而是按字段值划分独立队列:
- 字段值相同的记录:归入同一分区。
- 同一分区内:严格串行执行,上一条流程完全执行完毕后,才开始下一条。
- 不同分区之间:并行执行,互不等待。
相当于将一个全局队列,拆分成多个互不干扰的小队列。
经典场景:库存扣减 / 防超卖