zoukankan      html  css  js  c++  java
  • java中activiti框架中的排他网关使用方法,多条件判断

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

    那么,必须在后面的运行任务时,将所有的涉及到的变量都设置进任务中,只不过,如果这个任务没有涉及到这个变量的话,将该变量的值设为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);
    }

      

  • 相关阅读:
    Maven进价:Maven构建系列文章
    mybatis.net insert 返回主键
    IIS限制ip访问
    mybatis学习资源
    MVC4发布到IIS,出现HTTP 错误 404.0
    ElasticSearch 7.4.2 Root mapping definition has unsupported parameters
    钉钉网页版全屏
    sudo go 找不到命令
    ubuntu安装navicat
    golang 自动下载所有依赖包
  • 原文地址:https://www.cnblogs.com/zz22--/p/11226248.html
Copyright © 2011-2022 走看看