首页 > 编程语言 > 详细

java中activiti框架中的排他网关使用方法,多条件判断

时间:2019-07-22 16:22:10      阅读:711      评论:0      收藏:0      [点我收藏+]

当排他网关的判断条件中出现多个条件时,需要注意,设置判断条件时,可能遇到,流向相同的任务,而判断条件的变量个数不同

那么,必须在后面的运行任务时,将所有的涉及到的变量都设置进任务中,只不过,如果这个任务没有涉及到这个变量的话,将该变量的值设为null

技术分享图片

技术分享图片

当准备满足任务B的条件时,排他网关的判断条件必须满足#{((a==1 || a==3 ) && b==1)||(c==1 && b==3)}

可以看见,有两种情况会让工作流到B,但这两种情况设计的变量不同,第一种两种变量a和b,第二种则为变量b和c。

当我们在执行任务,并向任务重设置变量值时,比如设置b和c的值

variables.put("b", 3);
variables.put("c", 1);

  执行这个任务会出现错误:

org.activiti.engine.ActivitiException: Unknown property used in expression: #{((a==1 || a==3 ) && b==1)||(c==1 && b==3)}
	at 

  当将三个变量都设置,并且将无需赋值的变量的值设为null,便可以解决这个问题。

public void test3(){
		String taskId="5308";

		Map<String, Object> variables=new HashMap<>();
		//variables.put("Xmtype",1);
		//variables.put("Branch",0551);
		//variables.put("amt",25000);
		variables.put("a", null);
		variables.put("b", 3);
		variables.put("c", 1);
		pe.getTaskService().complete(taskId, variables);
}

  

 

java中activiti框架中的排他网关使用方法,多条件判断

原文:https://www.cnblogs.com/zz22--/p/11226248.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!