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()进入任务节点e2
时间: 2024-02-29 08:51:58 浏览: 147
activiti1-2
您可以通过以下步骤使用`taskService.complete()`进入任务节点e2:
1. 先查询当前运行时的任务对象,使用`taskService.createTaskQuery().taskId(taskId).singleResult()`方法查询。假设查询出的任务对象为`Task task`。
2. 判断当前任务节点的出线条件,如果满足条件2(message=2),则需要选择b出线,即执行`taskService.complete(task.getId(), Collections.singletonMap("message", "2"))`方法。其中,第二个参数是一个Map类型的变量,用于设置出线条件参数。
3. 接着,排他网关会根据出线条件2选择d2出线,进入任务节点e2。
完整的代码示例如下:
```java
Task task = taskService.createTaskQuery().taskId(taskId).singleResult();
if (task != null) {
if ("2".equals(message)) { // 判断出线条件为message=2
taskService.complete(task.getId(), Collections.singletonMap("message", "2")); // 执行任务完成操作,设置出线条件参数
}
}
```
阅读全文