flowable退回如何处理
时间: 2023-09-22 18:13:47 浏览: 87
在Flowable中,退回通常是通过将任务重新分配给之前的参与者来实现的。您可以使用以下步骤来处理退回:
1. 找到当前任务的处理人或候选人。
2. 将任务重新指派给他们,或将任务分配给之前的参与者。
3. 如果需要,可以添加一些备注或说明,以便之前的参与者了解为什么任务被退回。
4. 保存更改并通知相关人员。
请注意,如果您使用的是Flowable的用户任务,您可以使用历史记录来跟踪任务的状态,以便更好地了解任务的处理过程。
相关问题
flowable 退回发起人
Flowable是一个开源的工作流引擎,它提供了一种灵活且可扩展的方式来管理和执行业务流程。Flowable支持各种类型的流程,包括简单的线性流程、并行流程、条件分支流程等。
当一个任务需要退回给发起人时,可以通过Flowable的退回功能来实现。退回功能允许将任务退回到流程的起始节点,即发起人所在的位置。这样,发起人可以重新审查和修改任务,并重新提交给下一个处理人。
要实现任务的退回功能,可以按照以下步骤进行操作:
1. 在流程定义中定义一个退回节点,该节点连接到流程的起始节点。
2. 在任务处理过程中,当需要退回给发起人时,将任务分配给退回节点。
3. 退回节点会将任务退回给流程的起始节点,发起人可以重新审查和修改任务。
4. 修改后的任务可以再次提交给下一个处理人。
通过Flowable的退回功能,可以实现任务的灵活处理和流程的动态调整。这样可以提高业务流程的效率和灵活性。
flowable退回上一节点
在Flowable中,可以使用`runtimeService.createProcessInstanceModification`方法来将流程实例退回到上一个节点。具体步骤如下:
1. 获取当前运行的任务ID和流程实例ID。
```
Task currentTask = taskService.createTaskQuery().taskId(taskId).singleResult();
String processInstanceId = currentTask.getProcessInstanceId();
```
2. 获取上一个节点的历史记录。
```
HistoricActivityInstance lastActivity = historyService.createHistoricActivityInstanceQuery()
.processInstanceId(processInstanceId)
.activityType("userTask")
.finished()
.orderByHistoricActivityInstanceEndTime()
.desc()
.list()
.get(0);
```
3. 创建一个ProcessInstanceModification对象。
```
ProcessInstanceModification modification = runtimeService.createProcessInstanceModification(processInstanceId);
```
4. 添加一个取消当前任务的操作。
```
modification.cancelTask(taskId);
```
5. 添加一个退回到上一个节点的操作。
```
modification.startBeforeActivity(lastActivity.getActivityId());
```
6. 应用修改并提交事务。
```
modification.execute();
```
这样就可以将流程实例退回到上一个节点,并且当前任务被取消。注意,如果上一个节点是并行网关或者包含子流程的任务,则需要进行额外的处理。
阅读全文