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

Wesley13
• 阅读 444

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

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

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

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

当准备满足任务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);}
点赞
收藏
评论区
推荐文章
待兔 待兔
3个月前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
CuterCorley CuterCorley
3年前
商业数据分析从入门到入职(6)Python程序结构和函数
一、Python程序结构Python中,有3种常见的程序结构:Sequence顺序从上向下依次执行。Condition条件满足某个条件则执行。Loop循环重复执行某个动作。1.if条件判断某个变量是否满足某个条件时如下:pythonpossibility_to_rain0.7print(possibility_to_rain
Wesley13 Wesley13
3年前
SHELL IF条件判断,判断条件
1字符串判断str1str2      当两个串有相同内容、长度时为真str1!str2     当串str1和str2不等时为真\nstr1       当串的长度大于0时为真(串非空)\zstr1       当串的长度为0时为真(空串)str1          当串str1为非空时为真
Stella981 Stella981
3年前
Flowable 实现【选择下一步流程审核人】
原理:1.在流程表单数据正式提交审核前,将流程表单数据formData及流程执行实例ExecutionEntity传递给接口2.接口在流程定义取得当前节点信息并循环查找出线 SequenceFlow还需要注意遇到网关时应该怎样处理3.使用变量执行出线SequenceFlow条件(类似完成提交任务操作)4.找出第一个用户
Wesley13 Wesley13
3年前
Java自学
Java的If条件语句条件判断示例1:ifif(表达式1){表达式2;}如果表达式1的值是true,就执行表达式2!if(https://oscimg.oschina.net/oscnet/9bbaf72c54f9849129e8a039
Stella981 Stella981
3年前
Python中循环及判断语句
循环判断条件是编程语言中一个很重要的部分,python也不例外,循环判断条件一般结合continue,return,break关键字来判断,这些关键字用法与java中基本一致一、if判断语句判断条件返回的结果为布尔值,在python中,布尔值为True/False,首字母必须大写,否则将出现如下异常!(https://oscimg.oschi
Wesley13 Wesley13
3年前
Java入门(五):控制流程
在Java中,使用条件语句和循环结构确定控制流程,在本文中,主要包括块作用域、条件语句、循环结构、中断循环这四部分。一、块作用域块,也叫复合语句,是指由一对大括号括起来的若干条Java语句。块决定了变量的作用域。一个块可以嵌套多个块。二、条件语句如果判断超过三层,建议拆分开来写,这样更加清晰。packagejav
Wesley13 Wesley13
3年前
Java并发编程原理与实战二十三:Condition原理分析
先来回顾一下java中的等待/通知机制我们有时会遇到这样的场景:线程A执行到某个点的时候,因为某个条件condition不满足,需要线程A暂停;等到线程B修改了条件condition,使condition满足了线程A的要求时,A再继续执行。自旋实现的等待通知最简单的实现方法就是将condition设为一个volatile的变量
Stella981 Stella981
3年前
Python学习之路
三元运算变量条件返回True的结果if条件else条件返回False,用于简单importtimetime.time()1970年至今多少秒time.sleep()暂时休眠装饰器形成过程!(https://oscimg.oschina.net/oscnet/3b8d3477779a33f0ffcefa35
Stella981 Stella981
3年前
Elasticsearch6.7 Kibana6.7 Windows安装过程
一、前提条件  Java1.8.131以上SDK确认安装,不能是预览版(预览版时只能localhost访问,不能使用IP访问)  JAVA\_HOME环境变量设置OK二、Elasticsearch6.7安装  1、解压安装文件  2、config目录,修改elasticsearch.yml文件,设置cluster.name、node.na