我正在处理包含在部署到 Camunda 的 .war 文件中的 BPMN 图。该图显示正常,我可以完成前两个用户任务,但是当我到达独占网关时,我收到错误消息:表达式中使用的未知属性:${Approve == 1}。原因:无法解析标识符“批准”
我尚未确定变量 Approve,但我不确定在哪里执行此操作?我一直在处理BPMN图的.xml文件,其中与独占网关相关的代码如下:
<bpmn:sequenceFlow id="SequenceFlow_07b7fwg" name="Approve" sourceRef="ExclusiveGateway_0znxqqy" targetRef="ServiceTask_06fn5cm">
<bpmn:conditionExpression xsi:type="bpmn:tFormalExpression">${Approve == 1}</bpmn:conditionExpression>
</bpmn:sequenceFlow>
<bpmn:sequenceFlow id="SequenceFlow_0qnqvj1" sourceRef="ServiceTask_06fn5cm" targetRef="EndEvent_146k48m" />
<bpmn:endEvent id="EndEvent_0ug591n" name="End">
<bpmn:incoming>SequenceFlow_1y6i7xo</bpmn:incoming>
</bpmn:endEvent>
<bpmn:sequenceFlow id="SequenceFlow_068nx8b" name="Reject" sourceRef="ExclusiveGateway_0znxqqy" targetRef="ServiceTask_17qnuyi">
<bpmn:conditionExpression xsi:type="bpmn:tFormalExpression">${Reject == 2}</bpmn:conditionExpression>
</bpmn:sequenceFlow>
<bpmn:sequenceFlow id="SequenceFlow_1irpvhx" sourceRef="ServiceTask_17qnuyi" targetRef="ServiceTask_1jks4hs" />
<bpmn:sequenceFlow id="SequenceFlow_1mjdjw2" sourceRef="ServiceTask_1jks4hs" targetRef="EndEvent_1qmduq" />
<bpmn:endEvent id="EndEvent_1qmduq" name="Hello!" />
<bpmn:sequenceFlow id="SequenceFlow_1deve3u" name="Extra Step" sourceRef="ExclusiveGateway_0znxqqy" targetRef="ServiceTask_09nq79v" />
<bpmn:sequenceFlow id="SequenceFlow_1y6i7xo" sourceRef="ServiceTask_09nq79v" targetRef="EndEvent_0ug591n" />
这是基于 Camunda 提供的代码:https://docs.camunda.org/manual/7.4/reference/bpmn20/gateways/exclusive-gateway/
每个步骤还有一些在 Eclipse 中创建的 .java 文件,并引用相同的 BPMN 图。我不确定变量是否应该在 .xml 文件或 .java 文件中定义,以及如何执行此操作?谢谢。
最佳答案
您有两个带有条件表达式的序列流。分别名为 Approve
和 Reject
的变量上的表达式引用。这些变量必须在要评估的当前范围内定义。创建变量的方法有多种,之后应该对其进行评估。例如,创建一个表单,您可以在其中完成用户任务并创建变量。
您可以使用task complete REST 资源来完成用户任务并创建变量。
还可以在 execution listener 中使用 Java API :
public class ExampleExecutionListenerOne implements ExecutionListener {
public void notify(DelegateExecution execution) throws Exception {
execution.setVariable("Approve", true);
}
}
希望有帮助。
关于java - 具有 3 输出专用网关的 BPMN 图在 Camunda 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38901332/