流程分支
包括
flowable
在内的其它bpm
框架叫做网关
,这一概念在flowlong
被称分支
包含待执行任务,它们在流程设计和执行中扮演着不同的角色。
并行分支
提高工作流的执行效率,可以在同一时间内执行多个任务。
定义与功能: 并行分支允许将流程分成多条分支,也可以把多条分支汇聚到一起。其功能是基于进入和外出顺序流的,即可以分叉
(fork)
成多个并行分支,也可以汇聚(join)
多个并行分支。特点: 并行分支不会解析条件,即使顺序流中定义了条件,也会被忽略。 并行分支不需要平衡进入和出去流的数量,即进入和出去的分支数量可以不同。
应用场景: 常用于并行执行多个任务,这些任务可以是相互独立的,也可以是相互依赖的。
包容分支
特别适用于需要会签(即多个参与者共同办理)的任务场景。
定义与功能: 包容分支可以看做是排它分支和并行分支的结合体。它允许基于条件选择多条分支执行,但如果没有任何一个分支满足条件,则可以选择默认分支。
特点: 包容分支会在所有外出顺序流上解析条件,并且会并行执行所有条件为
true
的分支。 在汇聚时,包容分支只会等待被选中执行了的进入顺序流,这是与并行分支的重要区别。应用场景: 当工作流中的多个任务有不同的执行顺序或条件时,使用包容分支可以实现灵活的流程控制。
条件分支
也用于处理异常情况,将流程路由到特定的异常处理分支。
定义与功能: 排它分支用于在流程中实现决策,即根据条件选择一个分支执行。
特点: 当流程执行到排它分支时,所有分支都会进行条件判断,但只会选择一个条件为
true
的分支执行。 如果有多个分支条件都为true,排它分支会按照json
中定义的顺序来执行,即默认走第一个符合条件的分支。应用场景: 常用于流程中的决策点,根据条件选择不同的执行路径。
总结对比
分支类型 | 定义与功能 | 特点 | 应用场景 |
---|---|---|---|
并行分支 | 将流程分成多条分支或汇聚多条分支 | 不解析条件,数量无需平衡 | 并行执行多个任务,提高执行效率 |
包容分支 | 结合排它分支和并行分支的功能,允许多条分支执行 | 解析条件,并行执行所有true 的分支,只等待被选中的进入顺序流 | 灵活控制流程,适用于会签等任务场景 |
条件分支 | 根据条件选择一个分支执行 | 只选择一个true 的分支执行,按定义顺序 | 流程决策点,处理异常情况 |