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

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

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

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

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

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

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

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

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

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

1public void test3(){ 2 String taskId="5308"; 3 4 Map<String, Object> variables=new HashMap<>(); 5 //variables.put("Xmtype",1); 6 //variables.put("Branch",0551); 7 //variables.put("amt",25000); 8 variables.put("a", null); 9 variables.put("b", 3); 10 variables.put("c", 1); 11 pe.getTaskService().complete(taskId, variables);}
点赞
收藏

评论区

加载中...

相关推荐

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

手写Java HashMap源码

HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22

SHELL IF条件判断,判断条件

1字符串判断str1str2      当两个串有相同内容、长度时为真str1!str2     当串str1和str2不等时为真\nstr1       当串的长度大于0时为真(串非空)\zstr1       当串的长度为0时为真(空串)str1          当串str1为非空时为真

商业数据分析从入门到入职(6)Python程序结构和函数

一、Python程序结构Python中,有3种常见的程序结构:Sequence顺序从上向下依次执行。Condition条件满足某个条件则执行。Loop循环重复执行某个动作。1.if条件判断某个变量是否满足某个条件时如下:pythonpossibility_to_rain0.7print(possibility_to_rain

Flowable 实现【选择下一步流程审核人】

原理:1.在流程表单数据正式提交审核前,将流程表单数据formData及流程执行实例ExecutionEntity传递给接口2.接口在流程定义取得当前节点信息并循环查找出线 SequenceFlow还需要注意遇到网关时应该怎样处理3.使用变量执行出线SequenceFlow条件(类似完成提交任务操作)4.找出第一个用户

Python中循环及判断语句

循环判断条件是编程语言中一个很重要的部分,python也不例外,循环判断条件一般结合continue,return,break关键字来判断,这些关键字用法与java中基本一致一、if判断语句判断条件返回的结果为布尔值,在python中,布尔值为True/False,首字母必须大写,否则将出现如下异常!(https://oscimg.oschi