系列文章目录
第一章 springboot+Activiti7整合实践 (一)
第二章 springboot+Activiti7整合实践 (二) 模型定义
第三章 springboot+Activiti7整合实践 (三) 流程定义
第四章 springboot+Activiti7整合实践 (四) 分配规则
第五章 springboot+Activiti7整合实践 (五) 发布流程
第六章 springboot+Activiti7整合实践 (六) 启动流程(1)
第七章 springboot+Activiti7整合实践 (七) 自定义用户任务行为
第八章 springboot+Activiti7整合实践 (八) 待办任务
目录
前言
一、排他网关 ExclusiveGateway
二、并行网关 ParallelGateWay
三、相容网关 InclusiveGateway
四、事件网关 Event-Based Gateway
总结
前言
activiti工作流中,网关是非常常用的组件,用于处理流程中分支的情况,“如请假3天以内,需要部门经理审批,如果三天以上,需要找总经理审批”,这时候就需要使用网关处理,在实际业务中,流程一般都比较复杂,需要支持动态处理各种情况的发生,所以,网关就像一个处理流程分发的端口,起到处理流程走向重要功能。
常见的网关有:排他网关、并行网关、相容网关、事件网关(了解即可)
一、排他网关 ExclusiveGateway
顾名思义,排他官网就是多条分支线路,只会选择其中一条路来执行,与java中的if-else同理,如下图所示,根据请假天数(流程变量)不同,会选择不同的流程来执行,实现其功能的就是中间的排他网关。
除了配置合适的网关,还要对网关出口的连线进行条件配置,如(day>3),当流程进行到网关,网关会根据出口连线的条件,拿当前的流程参数就行判断,选择结果为真的分支运行。
二、并行网关 ParallelGateWay
与排他网关只选择其中一条线路执行不同,并行网关会使流程流转所有的分支,相当于创建多个独立的子流程,并且没有先后顺序,然后聚合所有的分支,当所有分支都执行完毕之后,流程才会往下流转。
(注意:并行网关的出口连线也可以写流转条件,但不生效,流程仍会流转所有分支。)
并行网关其实就是用来实现会签功能的,多人联合签署、签字、确认,所有人都完成签字后才会发布。
三、相容网关 InclusiveGateway
相容网关就是排他网关与并行网关的结合,既可以设置流转条件控制流程,又可以使一个或多个符合条件的流程并行执行。
如下所示请假流程图,可分解为3中情况,
1.小于3天:hr审批
2.大于等于3天且小于等于5天:副总经理审批
3.大于5天:副总经理和总经理审批
四、事件网关 Event-Based Gateway
有时候流转条件的判断并不全依赖于流程参数,网关可根据不同的事件进行流程流转,这种情况就需要事件网关,事件网关只进行拆分分支,没有聚合功能。(没用过,当作记录)
总结
网关是工作流中重要的组成部分,使工作流程更加的灵活多变,能支撑更复杂的业务流程,以上是实际应用中几乎一定会用到的网关,影响业务流程,在绘制bpmn流程图的时候需要合理运用,在java代码上没有什么特殊处理,所以也没什么代码可贴。