Activiti6--入门学习--网关

排他网关

流程图(idea插件画的)
大致流程就是 用户提交请假, 如果小于等于3天的由部门经理审批, 多于3天的要总经理审批
Activiti6--入门学习--网关
流程图里对应的代理人分别是

  • 提交申请 user1
  • 部门经理 user2
  • 总经理 user3

测试

启动流程
Activiti6--入门学习--网关
查看任务
Activiti6--入门学习--网关
提交任务

注意user1提交申请的时候就要设置请假天数(day)这个变量了, 有了这个变量流程图的网关才会决定走哪条路
Activiti6--入门学习--网关
我这测试设置的是4天, 数据库里任务的代理人就到user3了也就是超出3天由总经理进行审批
Activiti6--入门学习--网关
任务节点通过网关判断到总经理(user3),再次查询总经理任务信息
Activiti6--入门学习--网关
通过查询出的总经理任务id进行任务的提交
Activiti6--入门学习--网关
完成任务后如果没有其他节点该流程自动结束,表中会有结束时间
Activiti6--入门学习--网关

并行网关

流程图(idea插件画的)
大致流程就是 用户提交请假, 如果小于等于3天的,必须由部门经理和项目经理同时审批, 多于3天的要总经理审批
Activiti6--入门学习--网关
流程图里对应的代理人分别是

  • 提交申请 user1
  • 部门经理 user2
  • 项目经理 user3
  • 总经理 user4

测试

启动流程
Activiti6--入门学习--网关
查看任务
Activiti6--入门学习--网关
办理任务,这次是办理超过三天,任务依然通过并行网关分支流程,最后汇聚到一起
Activiti6--入门学习--网关
并行之部门经理,完成任务等待项目经理
Activiti6--入门学习--网关
并行之项目经理,完成任务,并行汇聚执行下一个流程
Activiti6--入门学习--网关
并行流程完毕,走到排他网关,进行条件判断,超过3天,走到总经理审批节点,进行审批
Activiti6--入门学习--网关
总经理审批完毕,流程结束
Activiti6--入门学习--网关
发布新的流程测试请假不超过3天的流程走向
Activiti6--入门学习--网关
启动流程

Activiti6--入门学习--网关
查看当前提交申请的任务信息
Activiti6--入门学习--网关
办理任务,这次是办理不超过三天,任务依然通过并行网关分支流程,最后汇聚到一起
Activiti6--入门学习--网关
并行之部门经理,完成任务等待项目经理
Activiti6--入门学习--网关
并行之项目经理,完成任务,并行汇聚执行下一个流程
Activiti6--入门学习--网关
并行流程完毕,走到排他网关,进行条件判断,不超过3天,流程直接结束。
Activiti6--入门学习--网关
总结
通过上面两次流程,不同的条件进行申请测试,得出以下结论:

验证1:无论条件是什么,并行网关会进行忽略,直接进行审批。
验证2:并行网关必须等待所有分支汇聚完毕后,才会进行下一个流程。

包含网关

流程图(idea插件画的)
大致流程就是 用户提交请假, 判断是否事病假,病假–>项目经理,否病假–>部门经理,判断是否大于三天,大于三天的需要总经理进行审批。

Activiti6--入门学习--网关
流程图里对应的代理人分别是

  • 提交申请 user1
  • 部门经理 user2
  • 项目经理 user3
  • 总经理 user4

测试

发布流程
Activiti6--入门学习--网关
启动流程
Activiti6--入门学习--网关
查看任务
Activiti6--入门学习--网关
办理任务,这次是办理不超过三天,任务依然通过包含网关,包含网关中的条件进行判断是否是病假,病假–>项目经理 ,否病假–>部门经理
Activiti6--入门学习--网关
Activiti6--入门学习--网关
包含之部门经理(请假不超过3天,无需总经理审批,直接放行,流程结束,这里不再测试超过3天,同样的道理上面的并行网关已经测试过了)
Activiti6--入门学习--网关
总结

通过上面流程条件进行申请测试,得出以下结论:

验证1:包含网关,是可以有多条顺序流,也就是并行,可以解析顺序流中的设置的条件进行选择流程
验证2:包含网关只会等待被选中执行的流程(也就是符合条件的流程)进行汇聚,然后穿过包含网关继续执行