在使用flowable某个用户任务属性:【跳过表达式】功能时,设置了表达式为${noCurrentUser == true},保存流程定义没有问题,在启动流程实例时,发生报错:
因为在启动实例过程中发现 运行时流程变量数据表( act_ru_variable ),没有noCurrentUser这个变量存在。
解决方法一:
在启动实例前,预设下这个变量,给个默认值
Map<String, Object> variables =po.getVariables();
variables.put("initiator",userInfo.getId());
variables.put("_FLOWABLE_SKIP_EXPRESSION_ENABLED", true);
variables.put("noCurrentUser",false);
ProcessInstance processInstance = runtimeService.startProcessInstanceById(procDefId, variables);
解决方法二:
根据官方文档对表达式的说明,可以用 ${var:get(noCurrentUser)== true} 来替换 ${noCurrentUser == true}