activiti:skipExpression 无效

activiti:skipExpression doesn't work

今天花了一些时间来了解如何使用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}"

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