activiti中一个任务节点able有a,b两条出线,a出线条件为message=1,b出线条件为message=2,a出线连接任务节点aaa,b连接排他网关,排他网关有两条出现,d1,d2,d1连接任务节点e1,条件为pre=1,d2连接任务节点e2,条件为pre=2,此时运行时任务Id为taskId,由任务节点able执行,请问如何使用taskService.complete()从able任务节点进入任务节点e2
时间: 2024-02-29 14:51:59 浏览: 259
activiti1-2
根据任务节点able的出线条件,需要选择b出线,进入排他网关,再根据排他网关的出线条件,选择d2出线,进入任务节点e2。因此,您可以通过以下代码使用`taskService.complete()`从able任务节点进入任务节点e2:
```java
Task task = taskService.createTaskQuery().taskId(taskId).singleResult();
if (task != null) {
Map<String, Object> variables = new HashMap<>();
variables.put("message", "2"); // 设置出线条件参数
taskService.complete(task.getId(), variables); // 执行任务完成操作
}
```
在上述代码中,我们首先查询了运行时的任务对象,然后根据出线条件设置了变量`message`的值为2,接着执行`taskService.complete()`方法完成任务。由于选择了任务节点e2,因此流程会继续在任务节点e2中执行。
阅读全文