Activiti学习笔记第十篇:排他网关

1. 流程图

在这里插入图片描述

2. 部署流程定义+启动流程实例

// 部署流程定义,启动流程实例
@Test
public void testExclusiveGateWay() throws Exception {
	// 1 发布流程
	InputStream inputStreamBpmn = this.getClass().getResourceAsStream("exclusiveProcess.bpmn");
	InputStream inputStreamPng = this.getClass().getResourceAsStream("exclusiveProcess.png");
	processEngine.getRepositoryService()//
						.createDeployment()//
						.addInputStream("exclusiveProcess.bpmn", inputStreamBpmn)//
						.addInputStream("exclusiveProcess.png", inputStreamPng)//
						.deploy();
	// 2 启动流程
	ProcessInstance pi = processEngine.getRuntimeService()//
						.startProcessInstanceByKey("exclusiveProcess");
	System.out.println("pid:"+pi.getId());
}

3. 查询我的个人任务

// 查询我的个人任务列表
@Test
public void findMyTaskList(){
	String userId = "王小五";
	List<Task> list = processEngine.getTaskService()//
						.createTaskQuery()//
						.taskAssignee(userId)//指定个人任务查询
						.list();
	for(Task task:list){
		System.out.println("id="+task.getId());
		System.out.println("name="+task.getName());
		System.out.println("assinee="+task.getAssignee());
		System.out.println("assinee="+task.getCreateTime());
		System.out.println("executionId="+task.getExecutionId());
	}
}

4. 完成我的个人任务

// 完成任务
@Test
public void completeTask() {
	String taskId = "2104";
	// 可以从页面上获取报销金额填写的值,设置流程变量,由流程怕判断应该执行哪条线
	Map<String, Object>  variables = new HashMap<String, Object>();
	variables.put("money", 200);
	processEngine.getTaskService()//
						.complete(taskId, variables);//
	System.out.println("完成任务);
}

说明:

  1. 一个排他网关对应一个以上的顺序流
  2. 由排他网关流出的顺序流都有个conditionExpression元素,在内部维护返回boolean类型的决策结果。
  3. 决策网关只会返回一条结果。当流程执行到排他网关时,流程引擎会自动检索网关出口,从上到下检索如果发现第一条决策结果为true或者没有设置条件的(默认为成立),则流出。
  4. 如果没有任何一个出口符合条件,则抛出异常
  5. 使用流程变量,设置连线的条件,并按照连线的条件执行工作流,如果没有条件符合的条件,则以默认的连线离开。例如:
    在这里插入图片描述
    则执行连线:
    在这里插入图片描述
    如果使用流程变量设置
// 可以从页面上获取报销金额填写的值,设置流程变量,由流程判断应该执行哪条连线
Map<String, Object> variables = new HashMap<String, Object>();
variables.put("money", 800);
processEngine.getTaskService()//
			.complete(taskId, variables);//

则执行连线:
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值