java - activiti:skipExpression 不起作用

标签 java activiti bpmn

今天我花了一些时间来了解如何使用 Activiti 的 skipExpression 功能。我希望我能找到这样的问题,这就是为什么我会把它放在这里并自己回答。

我尝试在 UserTask 中使用 activiti:skipExpression,如下所示:

<userTask id="usertask1" name="Order Book" activiti:assignee="myTestUser1" 
  activiti:skipExpression="${skip == 1}">
</userTask>

根据 https://activiti.atlassian.net/browse/ACT-2176 ,这应该是从 5.18 开始可能的。但我无法让它发挥作用。

我希望跳过该任务并创建以下任务,但流程的行为就像不存在跳过表达式一样(创建了任务 1,未创建任务 2)。

最佳答案

来自搜索 Activiti 的源代码 resp。在其测试中,我发现我必须向每个想要使用跳过功能的流程实例添加一个额外的变量:

    Map<String, Object> params = new HashMap<String, Object>();
    params.put("_ACTIVITI_SKIP_EXPRESSION_ENABLED", true);
    params.put("skip", 1);

此外,测试在流程 XML 的 userTask 中写入表达式,如下所示:

activiti:skipExpression="${execution.getVariable('skip') == 1}"

该参数未记录在 the Activiti User Guide 中版本 5.19(我使用的是 6.0.0.beta1),我在问题中提到的票证中也没有关于它的任何消息。

关于java - activiti:skipExpression 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33782352/

相关文章:

java - 如何以编程方式删除/暂停 Activiti 中的流程实例?

java - Camunda 用户任务执行失败

Spring Boot camunda 单元测试 - 异步之前/之后

Java:在一个 InputStream 上使用两个 Reader

java - 使用 System.getProperty(String) 测试类

java - Activiti BPMN 引擎 : store custom property in Database

java - 在 activiti explorer 之外启动 activiti 进程并在 activiti explorer 内完成它

java.lang.ClassNotFoundException : com. opensymphony.xwork.ActionSupport

Java每行读取一个文件行

grails - 在Grails上使用插件Activiti启动VacationRequestSampleApplication时出错