Activiti独家网关 - 在Java中使用

J-A*_*lex 4 java activiti

我在Activiti中有一个独有的网关,如何在Java代码中为独占网关设置条件变量?

variableData.put("condition", conditionVar);
taskService.complete(task.getId(), variableData);
Run Code Online (Sandbox Code Playgroud)

我如何在网关流上提取任务变量?是否有可能或我必须使用过程变量?

NIr*_*odi 7

当您使用条件专用网关设计工作流时,它将生成如下所示的XML,

<exclusiveGateway id="exclusiveGw" name="Exclusive Gateway" />

<sequenceFlow id="flow2" sourceRef="exclusiveGw" targetRef="theTask1">
  <conditionExpression xsi:type="tFormalExpression">${input == 1}</conditionExpression>
</sequenceFlow>
Run Code Online (Sandbox Code Playgroud)

所以你需要提供一个'input'变量值

variableData.put("input", 1);

如果你的任务是,ServiceTask那么你可以这样做

delegateExecution.setVariable("input",1);
Run Code Online (Sandbox Code Playgroud)

如需更多帮助,请访问http://www.activiti.org/userguide/#bpmnExclusiveGateway