flowable退回任意节点
时间: 2023-09-22 19:13:11 浏览: 153
对于Flowable流程引擎,你可以使用"taskService.createTaskQuery()"方法来查询当前任务,并使用"taskService.complete()"方法将任务退回到任意节点。具体步骤如下:
1. 首先,使用"taskService.createTaskQuery()"方法查询当前任务。你可以使用任务的ID、名称、负责人等条件来筛选需要退回的任务。
2. 获取查询结果中的任务ID,使用"taskService.complete()"方法将当前任务完成,并将流程退回到任意节点。
下面是一个示例代码:
```java
import org.flowable.engine.TaskService;
import org.flowable.task.api.Task;
public class FlowableExample {
public void returnToNode(String taskId, String targetNodeId) {
TaskService taskService = processEngine.getTaskService();
// 查询当前任务
Task currentTask = taskService.createTaskQuery().taskId(taskId).singleResult();
// 获取当前流程实例ID
String processInstanceId = currentTask.getProcessInstanceId();
// 完成当前任务
taskService.complete(taskId);
// 将流程实例退回到目标节点
runtimeService.createChangeActivityStateBuilder()
.processInstanceId(processInstanceId)
.moveActivityIdTo(currentTask.getTaskDefinitionKey(), targetNodeId)
.changeState();
}
}
```
在上述示例代码中,你需要替换"taskId"和"targetNodeId"为实际的任务ID和目标节点ID。这样就可以完成任务的退回操作了。请注意,退回操作可能会导致流程实例历史记录的变化,请谨慎使用。
阅读全文