Flowable工作流中会签节点处理回退并清除审批意见

本文主要是介绍Flowable工作流中会签节点处理回退并清除审批意见,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

    • 1,操作方法及步骤
    • 2,实现细节
    • 3,总结

1,操作方法及步骤

在Flowable工作流会签流程中,如果最后一个人选择回退流程,想要清除前面用户A和B填写的审批意见,需要通过Flowable提供的API来操作流程实例和任务,具体操作方法可以遵循以下步骤:

  1. 设计流程时设置回退规则:在设计工作流时,应该考虑到回退的情况,并为每个节点设置相应的规则。例如,当流程被回退时,可以设定是否清除之前节点的数据。使用Flowable的RuntimeService或HistoryService来回退流程实例到指定的活动或历史节点。

  2. 触发回退机制:在最后一个人点击回退时,系统应该能够识别这一操作,并触发相应的回退机制。这可能涉及到修改数据库记录的状态,或者调用特定的API来处理数据。

  3. 清除审批意见:一旦回退机制被触发,系统应该自动清除或标记前面节点的所有审批意见为无效或已删除状态。这可以通过更新数据库中的字段来实现,例如将“审批意见”字段置为空,或将一个“有效状态”字段设置为“无效”。在回退后,找到相关的任务实例,更新其属性,例如清除审批意见或设置一个标志表示意见无效。

  4. 恢复到前一状态:清除审批意见后,流程应该回到上一个状态,使得下一次审批可以从头开始,而不受之前审批意见的影响。

  5. 通知相关人员:最后,系统还应该自动通知所有受影响的参与者(如用户A和B),告知他们流程已被回退,以及他们可能需要重新进行审批。

2,实现细节

  1. 回退流程实例
    使用RuntimeService的createChangeActivityStateBuilder方法来回退流程实例。下面是一个示例代码片段:
// 假设你已经有了流程实例ID和你想回退到的活动ID
String processInstanceId = "your-process-instance-id";
String activityIdToRollbackTo = "activity-id";// 获取RuntimeService
RuntimeService runtimeService = processEngine.getRuntimeService();// 创建回退流程实例的builder
ChangeActivityStateBuilder changeStateBuilder = runtimeService.createChangeActivityStateBuilder().processInstanceId(processInstanceId).moveToActivity(activityIdToRollbackTo);// 执行回退
changeStateBuilder.execute();
  1. 清除审批意见
    对于清除审批意见,遍历或查询所有相关任务,然后使用TaskService来更新任务的属性。例如:
// 获取TaskService
TaskService taskService = processEngine.getTaskService();// 查询所有与流程实例相关联的任务
List<Task> tasks = taskService.createTaskQuery().processInstanceId(processInstanceId).list();// 遍历任务并清除审批意见
for (Task task : tasks) {// 获取任务变量或属性,假设审批意见保存在一个名为"approvalComment"的变量中Object approvalComment = taskService.getVariable(task.getId(), "approvalComment");// 如果审批意见存在,则清除它if (approvalComment != null) {taskService.removeVariableLocal(task.getId(), "approvalComment");}
}

上述代码仅作为示例,遇到问题可能需要根据你的具体需求和环境进行调整。

3,总结

最后,进行这类操作时,务必小心,因为它们可能会影响流程的历史数据和一致性。建议在测试环境中尝试并验证逻辑,然后再在生产环境中实施。

在这里插入图片描述


人生从来没有真正的绝境。只要一个人的心中还怀着一粒信念的种子,那么总有一天,他就能走出困境,让生命重新开花结果。


这篇关于Flowable工作流中会签节点处理回退并清除审批意见的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1060373

相关文章

SQL Server数据库死锁处理超详细攻略

《SQLServer数据库死锁处理超详细攻略》SQLServer作为主流数据库管理系统,在高并发场景下可能面临死锁问题,影响系统性能和稳定性,这篇文章主要给大家介绍了关于SQLServer数据库死... 目录一、引言二、查询 Sqlserver 中造成死锁的 SPID三、用内置函数查询执行信息1. sp_w

Java对异常的认识与异常的处理小结

《Java对异常的认识与异常的处理小结》Java程序在运行时可能出现的错误或非正常情况称为异常,下面给大家介绍Java对异常的认识与异常的处理,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参... 目录一、认识异常与异常类型。二、异常的处理三、总结 一、认识异常与异常类型。(1)简单定义-什么是

LiteFlow轻量级工作流引擎使用示例详解

《LiteFlow轻量级工作流引擎使用示例详解》:本文主要介绍LiteFlow是一个灵活、简洁且轻量的工作流引擎,适合用于中小型项目和微服务架构中的流程编排,本文给大家介绍LiteFlow轻量级工... 目录1. LiteFlow 主要特点2. 工作流定义方式3. LiteFlow 流程示例4. LiteF

SpringBoot集成LiteFlow实现轻量级工作流引擎的详细过程

《SpringBoot集成LiteFlow实现轻量级工作流引擎的详细过程》LiteFlow是一款专注于逻辑驱动流程编排的轻量级框架,它以组件化方式快速构建和执行业务流程,有效解耦复杂业务逻辑,下面给大... 目录一、基础概念1.1 组件(Component)1.2 规则(Rule)1.3 上下文(Conte

Golang 日志处理和正则处理的操作方法

《Golang日志处理和正则处理的操作方法》:本文主要介绍Golang日志处理和正则处理的操作方法,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考... 目录1、logx日志处理1.1、logx简介1.2、日志初始化与配置1.3、常用方法1.4、配合defer

springboot加载不到nacos配置中心的配置问题处理

《springboot加载不到nacos配置中心的配置问题处理》:本文主要介绍springboot加载不到nacos配置中心的配置问题处理,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑... 目录springboot加载不到nacos配置中心的配置两种可能Spring Boot 版本Nacos

详解如何使用Python构建从数据到文档的自动化工作流

《详解如何使用Python构建从数据到文档的自动化工作流》这篇文章将通过真实工作场景拆解,为大家展示如何用Python构建自动化工作流,让工具代替人力完成这些数字苦力活,感兴趣的小伙伴可以跟随小编一起... 目录一、Excel处理:从数据搬运工到智能分析师二、PDF处理:文档工厂的智能生产线三、邮件自动化:

基于Python开发一个有趣的工作时长计算器

《基于Python开发一个有趣的工作时长计算器》随着远程办公和弹性工作制的兴起,个人及团队对于工作时长的准确统计需求日益增长,本文将使用Python和PyQt5打造一个工作时长计算器,感兴趣的小伙伴可... 目录概述功能介绍界面展示php软件使用步骤说明代码详解1.窗口初始化与布局2.工作时长计算核心逻辑3

RabbitMQ工作模式中的RPC通信模式详解

《RabbitMQ工作模式中的RPC通信模式详解》在RabbitMQ中,RPC模式通过消息队列实现远程调用功能,这篇文章给大家介绍RabbitMQ工作模式之RPC通信模式,感兴趣的朋友一起看看吧... 目录RPC通信模式概述工作流程代码案例引入依赖常量类编写客户端代码编写服务端代码RPC通信模式概述在R

python web 开发之Flask中间件与请求处理钩子的最佳实践

《pythonweb开发之Flask中间件与请求处理钩子的最佳实践》Flask作为轻量级Web框架,提供了灵活的请求处理机制,中间件和请求钩子允许开发者在请求处理的不同阶段插入自定义逻辑,实现诸如... 目录Flask中间件与请求处理钩子完全指南1. 引言2. 请求处理生命周期概述3. 请求钩子详解3.1