Activiti进阶(七)——排他网关(ExclusiveGateWay)
转载地址:http://blog.csdn.net/zjx86320?viewmode=contents
上一篇博文我们简单介绍了一下连线,也分析了一种情况,就是在工作流中,用户任务下面有两个连线,如何选择工作流的进程。这一篇博文和上一篇博文讨论的主题类似,解决上一篇博文中有多个连线分支的情况,我们可以使用排他网管来解决。
一、流程图
图一 费用报销申请流程图
设置连线属性:
1.500≤费用金额≤1000
2.费用金额<500
3.费用金额>1000
4.设置排他网关的默认执行任务
5.设置【财务】审批为默认
二、部署和启动流程
- /**部署流程定义+启动流程实例*/
- @Test
- public void deployementAndStartProcess(){
- InputStream inputStreamBpmn = this.getClass().getResourceAsStream("exclusiveGateWay.bpmn");
- InputStream inputStreampng = this.getClass().getResourceAsStream("exclusiveGateWay.png");
- //部署流程定义
- Deployment deployment = processEngine.getRepositoryService()//
- .createDeployment()//创建部署对象
- .addInputStream("exclusiveGateWay.bpmn", inputStreamBpmn)//部署加载资源文件
- .addInputStream("exclusiveGateWay.png", inputStreampng)//
- .deploy();
- System.out.println("部署ID:"+deployment.getId());
- //启动流程实例
- ProcessInstance pi = processEngine.getRuntimeService()//
- .startProcessInstanceByKey("exclusiveGateWay");//使用流程定义的key的最新版本启动流程
- System.out.println("流程实例ID:"+pi.getId());
- System.out.println("流程定义的ID:"+pi.getProcessDefinitionId());
- }
三、查看个人任务
- /**查询我的个人任务*/
- @Test
- public void findPersonalTaskList(){
- //任务办理人
- String assignee = "王小五";
- List<Task> list = processEngine.getTaskService()//
- .createTaskQuery()//
- .taskAssignee(assignee)//个人任务的查询
- .list();
- if(list!=null && list.size()>0){
- for(Task task:list){
- System.out.println("任务ID:"+task.getId());
- System.out.println("任务的办理人:"+task.getAssignee());
- System.out.println("任务名称:"+task.getName());
- System.out.println("任务的创建时间:"+task.getCreateTime());
- System.out.println("流程实例ID:"+task.getProcessInstanceId());
- System.out.println("#######################################");
- }
- }
- }
四、完成任务
- /**完成任务*/
- @Test
- public void completeTask(){
- //任务ID
- String taskId = "3904";
- //完成任务的同时,设置流程变量,让流程变量判断连线该如何执行
- Map<String, Object> variables = new HashMap<String, Object>();
- variables.put("money", 800);
- processEngine.getTaskService()//
- .complete(taskId,variables);
- System.out.println("完成任务:"+taskId);
- }
总结:
一个排他网关对应一个以上的顺序流,由排他网关流出的顺序流都有个conditionExpression元素,在内部维护
返回boolean类型的决策结果。决策网关只会返回一条结果。当流程执行到排他网关时,流程引擎会自动检索网关出
口,从上到下检索如果发现第一条决策结果为true或者没有设置条件的(默认为成立),则流出。如果没有任何一个出
口符合条件,则抛出异常使用流程变量,设置连线的条件,并按照连线的条件执行工作流,如果没有条件符合的条
件,则一默认的连线离开。
转载于:https://www.cnblogs.com/albert-think/p/6595030.html
Activiti进阶(七)——排他网关(ExclusiveGateWay)相关推荐
- activiti学习之排他网关
写在前面 在一些场景中可能不同的条件就流转到不同的节点来执行,比如请假,当请假天数小于等于2天,则直属领导审批,当请假天数大于2天小于等于5天时就部门负责人审批,当请假天数大于5天 就董事长审批,这种 ...
- activiti(7.0)排他网关
import org.activiti.engine.ProcessEngine; import org.activiti.engine.ProcessEngines; import org.acti ...
- Activiti进阶
一.流程实例 1.1.什么是流程实例 流程实例(ProcessInstance)代表流程定义的执行实例. 例如:用户或程序按照流程定义内容发起一个流程,这就是一个流程实例. 1.2.启动流程实例 并添 ...
- Activiti 学习笔记八:排他网关(ExclusiveGateWay)
一.流程图 二.演示代码 package ExclusiveGateWayTest;import java.io.InputStream; import java.util.HashMap; impo ...
- 排他网关(ExclusiveGateWay)
网关(ExclusiveGateWay) 作者:邓家海 2018年3月11日 00:13:25 情景: 某一家公司最近在给一个单位做一个财务审批的OA.具体需求是这样的:当部门申请的金额小于一万块的时 ...
- activiti学习(十六)——并行网关、排他网关、包含网关
网关和分支是流程图中相当重要的一环.毕竟不可能所有流程都是一条直线走到底的,可能需要并行处理,也可能需要根据条件的不同选择对应的路由,网关的作用正是在此.本文主要探索一下这几种网关的常用方法,以及一些 ...
- java中activiti框架中的排他网关使用方法,多条件判断
当排他网关的判断条件中出现多个条件时,需要注意,设置判断条件时,可能遇到,流向相同的任务,而判断条件的变量个数不同 那么,必须在后面的运行任务时,将所有的涉及到的变量都设置进任务中,只不过,如果这个任 ...
- Flowable进阶学习(六)网关(排他网关、并行网关、包容网关、事件网关)
文章目录 排他网关 案例: 并行网关 案例: 包容网关 案例: 事件网关 1. 定时事件 1.1 定时器启动事件 案例 网关(gateway)用来控制流程的流向.来实现复杂的审批流程. 网关的分类包括 ...
- 第15篇: Flowable-BPMN操作流程之排他网关
接上一篇: 第14篇:Flowable-BPMN操作流程之任务完成 https://blog.csdn.net/weixin_40816738/article/details/102902647 文章 ...
最新文章
- linux之find -regex 使用正则表达式
- python语言介绍-Python这门语言的大概介绍
- 使用原生 Java 玩转验证码【含 DATA-URIS 介绍】
- border-collapse:collapse;清除表格中单元格的空隙
- 支持驱动最好的linux软件,Linux平台设备和驱动
- window.showModalDialog介绍
- LVS+Keepalived实现负载均衡和双机热备
- uniapp自定义条件编译-定制化产品
- mysql导出bacpac_在 Azure 中备份应用
- mysql 临时索引_MYSQL临时表创建索引
- Django之模型层
- 《解密并行和分布式深度学习:深度并发分析》摘要记录
- ubuntu16.04中运行orb-slam2_with_semantic_labelling-master
- 企业微信开发实战(三、OA审批之回调通知、获取审批单号、审批详情)
- 某程序员上线原谅宝:抓取全球不可描述网站和社交平台10万渣女
- utf8字符集中漢字默認占三個字節
- 虚拟机01--Mac安装Centos虚拟机
- 7-35 英文字母的大小写转换
- 金庸小说人物知识图谱构建——获取共现关系
- 在word文档中,解决求和符号的上下标变成右标.