• 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);
    }

      

  • 相关阅读:
    nodejs中 underscore 包有什么作用
    how to download a file with Nodejs(without using third-party libraries)用node下载文件
    nodejs 操作文件系统读取写入文件
    Express URL跳转(重定向)的实现
    nodejs处理页面跳转url地址的处理
    MongoDB和MySQL的区别
    Mysql简单介绍
    MongoDB索引原理
    redis GEO地理位置命令介绍
    lfyzoj104 Counting Swaps
  • 原文地址:https://www.cnblogs.com/zz22--/p/11226248.html
Copyright © 2020-2023  润新知