flowable实现退回
时间: 2023-10-18 20:05:22 浏览: 172
Flowable是一个流程引擎,可以通过其提供的API实现流程的退回功能。在Flowable中,可以使用以下两种方式实现退回:
1. 直接跳转到指定节点:可以通过设置任务的目标节点ID,使用`taskService.createTaskQuery()`方法获取当前任务,再使用`taskService.setVariable()`方法设置退回原因等变量,最后使用`taskService.complete()`方法完成任务,将任务直接跳转到指定节点。
2. 创建新的退回任务:可以使用`runtimeService.createProcessInstanceModification()`方法创建一个新的流程实例变更对象,通过`cancelAllForActivity()`方法取消当前节点及其后续节点的所有任务,再通过`startBeforeActivity()`方法创建一个新的任务,并将其指定为退回节点。最后,可以使用`setVariable()`方法设置退回原因等变量,使用`execute()`方法执行流程实例变更。
需要注意的是,在使用退回功能时,需要考虑流程实例的状态、历史记录等因素,以保证流程的正确性和完整性。同时,应该根据具体的业务需求,选择合适的退回方式和实现方法。
相关问题
Flowable实现退回
Flowable中的任务退回可以通过以下两种方式实现:
1. 使用Flowable提供的“退回历史任务”API,将当前任务设置为已完成并创建一个新任务,将新任务指派给上一个任务的处理人。这种方法需要在流程定义中配置可以退回的任务节点,以及在代码中调用API实现任务的退回。
2. 使用Flowable提供的“撤回”API,将当前任务撤回到上一个任务节点,然后重新开始执行任务。这种方法需要在流程定义中配置可以撤回的任务节点,以及在代码中调用API实现任务的撤回。
需要注意的是,退回和撤回的实现方式会根据具体的业务场景和流程定义的复杂度而有所不同。在实现退回和撤回时,需要仔细考虑流程的数据完整性和一致性,以及对任务处理人的通知和提醒等方面的要求。
Flowable实现流程退回
Flowable提供了多种方式实现流程退回,以下是其中两种常见的方式:
1. 使用历史数据回退
在流程中使用历史数据回退的方式,即在流程实例中获取历史流程实例信息,然后将历史流程实例信息重新作为新的流程实例启动。这种方式的实现需要满足以下条件:
- 流程实例需要使用历史数据回退,即需要记录历史数据。
- 需要保存历史数据的流程实例需要使用自定义的处理逻辑。
2. 使用多实例节点实现退回
在流程中使用多实例节点实现退回的方式,即使用多实例节点将当前任务和历史任务都加入到一个任务集合中,并且将集合中的任务按照特定的排序规则排序,然后在任务集合中进行退回操作。这种方式的实现需要满足以下条件:
- 需要使用多实例节点。
- 需要使用自定义的排序规则。
- 需要使用自定义的退回操作。
以上是两种常见的流程退回实现方式,具体实现需要根据业务需求进行选择。
阅读全文