并行网关

与排他网关不同,并行网关中,该网关分支的所有条件都执行完的时候,才能走到下一个任务.
有任意个条件未执行,该部分任务都不会完成.

就像是集龙珠,必须7颗都同时在,才能召唤出神龙

绘制流程图

在组件栏中有一个叫Gateway的,第一个parallelGateway,它就是并行网关,第二个ExclusiveGateway是排他网关,剩下的两个,分别是:InclusiveGateway(包含网关),EventGateway(事件网关)

并行网关不需要条件进行判断

流程demo

部署流程

/*** 部署设计资源 即之前创建的流程设计图*/@Testpublic void deploy() {pe.getRepositoryService().createDeployment().addClasspathResource("MyProcess.png").addClasspathResource("MyProcess.bpmn").name("优秀员工申请-并行网关").deploy();}

员工进行优秀员工申请

/*** 启动流程实例*/@Testpublic void start() {// 通过id启动 启动时赋予流程执行人即 刚才${}中的值//此时act_ru_execution act_ru_task 两张表中有数据Map<String, Object> map = new HashMap<>();map.put("employee", "尼古拉斯赵四");map.put("reason","我能把气质拿捏的死死的");ProcessInstance pi = pe.getRuntimeService().startProcessInstanceByKey("myProcess", map);}


申请完成

/*** 完成任务* 此时act_ru_execution act_ru_task 两张表中没有数据* 相对应的 在历史表中有数据*/@Testpublic void completeTask() {pe.getTaskService().complete("50006");//通过任务id来完成任务 }

进行人事,主管的审批

人事审批完成

/*** 完成任务* 此时act_ru_execution act_ru_task 两张表中没有数据* 相对应的 在历史表中有数据*/@Testpublic void completeTask() {pe.getTaskService().complete("52504");//通过任务id来完成任务 此处将判断依据传入}

此时,task表中 taskid为52504的人事审批任务消失

主管审批完成

/*** 完成任务* 此时act_ru_execution act_ru_task 两张表中没有数据* 相对应的 在历史表中有数据*/@Testpublic void completeTask() {pe.getTaskService().complete("52507");//通过任务id来完成任务 此处将判断依据传入}

人事主管都审批完成,进入老板审批阶段

此时task表中数据为

进行老板审批完成

/*** 完成任务* 此时act_ru_execution act_ru_task 两张表中没有数据* 相对应的 在历史表中有数据*/@Testpublic void completeTask() {pe.getTaskService().complete("57503");//通过任务id来完成任务 此处将判断依据传入}

此时task表中,已无相关数据
整个流程走完.
查看历史数据

/*** 查看历史任务数据*/@Testpublic void findHistoryTask() {List<HistoricTaskInstance> htis = pe.getHistoryService().createHistoricTaskInstanceQuery().deploymentId("45001")        //根据部署id查.list();htis.forEach(hti->{System.out.println("历史任务id"+hti.getId());System.out.println("历史任务名称"+hti.getName());System.out.println("历史任务创建时间"+hti.getCreateTime());System.out.println("历史任务结束时间"+hti.getEndTime());System.out.println("历史任务执行人"+hti.getAssignee());});}

结果

历史任务id50006
历史任务名称优秀员工申请
历史任务创建时间Wed Jan 22 15:33:05 CST 2020
历史任务结束时间Wed Jan 22 15:36:34 CST 2020
历史任务执行人宇智波谢广坤
历史任务id52504
历史任务名称人事考勤审批
历史任务创建时间Wed Jan 22 15:36:34 CST 2020
历史任务结束时间Wed Jan 22 15:39:47 CST 2020
历史任务执行人人事
历史任务id52507
历史任务名称主管业绩审批
历史任务创建时间Wed Jan 22 15:36:34 CST 2020
历史任务结束时间Wed Jan 22 15:40:56 CST 2020
历史任务执行人主管
历史任务id57503
历史任务名称老板审批
历史任务创建时间Wed Jan 22 15:40:56 CST 2020
历史任务结束时间Wed Jan 22 15:42:33 CST 2020
历史任务执行人老板

activiti工作流学习(四)相关推荐

  1. Activiti工作流学习之流程图应用详解

    Activiti工作流学习之流程图应用详解 1.目的 了解Activiti工作流是怎样应用流程图的. 2.环境准备 2.1.相关软件及版本 jdk版本:Jdk1.7及以上 IDE:eclipse 数据 ...

  2. Activiti工作流学习笔记01

    Activiti6工作流学习笔记01 activiti工作流目前官方最新版本是7.x,但....版本不重要了.这篇笔记只是我学习activiti6过程中的自我总结.如果笔记上有错误的话,欢迎赐教,谢谢 ...

  3. Activiti工作流学习篇(一)

    一.Activiti 的概念       工作流(Workflow),指"业务过程的部分或整体在计算机应用环境下的自动化".是对工作流程及其各操作步骤之间业务规则的抽象.概括描述. ...

  4. activiti工作流学习(二)

    流程连线 流程开始→某个学生请假(一般情况/特殊情况)→班长审批通过→(进行判断,如果是一般情况直接结束;如果是特殊情况流程指向教师审批,教师审批结束后)→结束 任务设定 学生请假,执行人设置为 ${ ...

  5. 【笔记整理】Activiti工作流的学习笔记

    Activiti基础篇 1.什么是工作流 1.1 工作流简介 工作流(Workflow),就是通过计算机对业务流程自动化执行管理.它主要解决的是"使在多个参与者之间按照某种预定义的规则自动进 ...

  6. activiti 工作流_一文让你读懂什么是Activiti工作流

    Activiti工作流学习经验总结(一) 什么是工作流? 工作流指通过计算机对业务流程进行自动化管理,实现多个参与者按照预定义的流程去自动执行业务流程. 什么是Activiti? Activiti 是 ...

  7. activiti 生命周期_一文让你读懂什么是Activiti工作流

    Activiti工作流学习经验总结(一) 什么是工作流? 工作流指通过计算机对业务流程进行自动化管理,实现多个参与者按照预定义的流程去自动执行业务流程. 什么是Activiti? Activiti 是 ...

  8. 工作流学习——Activiti整体认识二步曲

    一.前言 在上一篇文章中我们将工作流的相关概念.activiti的前世今生.activiti与jbpm的比较进行学习,这篇文章我们正式进行activiti的学习,activiti的整个学习我们主要通过 ...

  9. Activiti工作流框架学习笔记(一)

    工作流的概念 先看下面两张图: 对以上两张图进行说明: 假设这两张图就是华谊兄弟的请假流程图 图的组成部分: 人物:范冰冰.冯小刚.王中军 事件(动作):请假.批准.不批准 通过以上分析我们就可以抽象 ...

最新文章

  1. apache用户认证
  2. 什么是RPA 现在都有哪些产品
  3. 如何连接文档服务器,如何连接服务器地址
  4. 对象的List成员添加元素
  5. 计算机用户管理怎么进入,我有计算机管理员和受限用户不出现欢迎使用直接进入受限用户怎么办...
  6. linux如何关闭oracle数据库,linux关闭oracle数据库命令
  7. 《麦肯锡方法》阅读笔记2——探索分析问题的方法
  8. 服务器系统补丁失败,windows server 2008更新补丁失败排错
  9. android 仿ios地址,Android 仿苹果通话界面源码
  10. Ubuntu 20.04 Server 使用命令行设置 IP 地址
  11. java caller_JavaScript中callee和caller的区别与用法实例分析
  12. node爬取app数据_从零开始写一个node爬虫(上)—— 数据采集篇
  13. 东航电商前端技术周刊第一期20180601
  14. Spring Boot---(10)SpringBoot整合RabbitMQ
  15. vs的oxc000007b错误和key valid错误
  16. 机器学习-朴素贝叶斯-垃圾邮件
  17. 5分钟了解《代码整洁之道》精华
  18. python 散点图 置信区间_python matplotlib – 等高线图 – 置信区间
  19. ArcGIS Pro硬件要求
  20. 每日新闻丨华为被拘留前员工再回应;亚马逊云发布量子计算服务Braket预览;硅谷“六巨头”10年避税超千亿美元...

热门文章

  1. Linux中的jiffies介绍
  2. 双亲委派机制及其弊端
  3. 如何用CDMA 1X手机连接LINUX电脑上因特网
  4. 【转】炒股技巧:教你四种买入方法 准确率高达95%!
  5. 怎么用css设置滚动条
  6. 数论概论读书笔记 19.素性测试与卡米歇尔数
  7. 解决:UnicodeDecodeError: 'gbk' codec can't decode byte 0x8b in position 21804: illegal multibyte seque
  8. php微信上传视频文件在哪里,微信小程序中实现上传视频的开发代码
  9. Spring MVC 原理
  10. tomcat + spring mvc原理(二):tomcat容器初始化加载和启动