【问题篇】activiti通过修改表手动退回流程

简介: 【问题篇】activiti通过修改表手动退回流程


背景:在利用activi完成开发项目开发后,假设某一个正常走的流程功能用户想要回退到某一个环节去,重新审核或者编辑表单,我们在处理运维工作时经常会遇到这种情况,下面针对这种情况,记录一下自己的处理方式,便于下次回忆起。

       效果:可以回退到指定环节,并查看流程记录时该环节后的也删除掉。

       举例我的流程如下:拟稿->评分人审核->自评->评分人评分->员工确认->完成

       假设当前环节已经到了员工确认,但是我想退回到评分人评分环节。

1、找到流程实例表中的PROC_INST_ID_

       一般都是通过业务表主键作为唯一的实例id代表整个流程实例的key即BUSINESS_KEY_,举例我要修改某一个绩效的单子的任务,先通过业务主键id找到PROC_INST_ID_。

3、修改历史记录表中的历史记录

       找到要退回的一条流程记录,删除它后续的记录,并修改需要回退的记录的结束时间为空,并修改审核人,再将当前流程所在环节(也就是最新的一条的id复制给要退回的流程那条记录,为了complete时,修改到结束时间)。此处的操作就是将评分人评价的END_TIME_设置为空,并设置这个环节的ASSIGNEE_(我这个例子是特殊情况,这个环节不设置审批人,是通过代码处理),再将员工确认的主键复制给评分人评价着一条,再将员工确认这条删除掉。

4、修改执行实例表数据

       通过PROC_INST_ID_筛选执行实例表相关数据,将ACT_ID_不为空的数据(表示当前环节的名字,流程图画的时候节点的名字)修改为需要回到的环节名字。此处修改four为three。

5、修改流程实例表

       通过PROC_INST_ID_筛选流程实例表相关数据,当前数据表示该流程实例正所处的环节信息,修改数据为需要回到的环节数据。此处的操作是将员工确认改为评分人评价,four改为three,ASSIGNEE改为该环节的处理人。

6、修改业务表本身

       最后再修改自己的业务表数据,将流程状态改为自己退回后该流程应该属于的环节状态即可。此处7改为5。

欢迎交流,若有更好的方法欢迎评论区指教。

目录
相关文章
工作流(Activiti 6.0)之自由驳回任务实现
工作流版本使用6.0,参数为任务id(task中主键),目标节点ID(比如userTask1),以及业务主键信息(businessKey)。
|
8月前
|
移动开发 前端开发 JavaScript
征信报告修改器,征信报告生成器,制作软件无痕修改软件【js+html+css】
本项目为信用评分模拟器教学工具,采用HTML5实现,仅供学习参考。核心功能通过JavaScript构建,包含虚拟数据生成、权重分配及信用因素分析(如还款记录、信用使用率等)。
|
10月前
|
存储 XML JSON
Activiti 7 核心数据库表概览及流程生命周期中的作用
Activiti 7 工作流引擎通过约25张核心数据库表实现流程定义、运行时状态、历史记录与身份数据的存储。表名以ACT_开头,后跟标识用途的字母组合(如RE表示Repository静态信息,RU表示Runtime动态数据)。流程启动时在运行时表登记数据,任务执行中更新关联信息,结束时清理运行时记录并完善历史记录。各表分工明确且逻辑紧密关联,确保高效运行与完整留痕的平衡。掌握这些表的作用和关联有助于深入理解Activiti底层原理及进行高级应用开发。
799 0
|
XML Java 数据库
【二十三】springboot整合activiti7(1)实战演示篇
【二十三】springboot整合activiti7(1)实战演示篇
1318 0
|
安全 NoSQL Java
SpringBoot集成Activiti5.22在线流程设计器
SpringBoot集成Activiti5.22在线流程设计器
844 0
SpringBoot集成Activiti5.22在线流程设计器
|
消息中间件 存储 Kafka
被问到MQ消息已丢失,该如何处理?
在分布式系统中,消息中间件(如RabbitMQ、Kafka等)用于解耦生产者和消费者,确保数据传输的可靠性和顺序性。尽管有多种措施防止消息丢失,如消息持久化、手动确认机制和重试机制,但消息丢失仍可能发生。本文探讨了四种常见丢失场景及补救措施:1. 生产者发送消息失败;2. 消息在传输过程中丢失;3. 消息中间件内部丢失;4. 消费者未处理完消息前丢失。针对每种场景,提出了相应的解决方案,如消息重发、本地存储、日志记录、高可用配置、死信队列等,以确保系统的可靠性和稳定性。
775 0
springboot 集成 swagger 2.x 和 3.0 以及 Failed to start bean ‘documentationPluginsBootstrapper‘问题的解决
本文介绍了如何在Spring Boot项目中集成Swagger 2.x和3.0版本,并提供了解决Swagger在Spring Boot中启动失败问题“Failed to start bean ‘documentationPluginsBootstrapper’; nested exception is java.lang.NullPointerEx”的方法,包括配置yml文件和Spring Boot版本的降级。
springboot 集成 swagger 2.x 和 3.0 以及 Failed to start bean ‘documentationPluginsBootstrapper‘问题的解决
|
Oracle Java 关系型数据库
Java SpringBoot集成Activiti7工作流
Java SpringBoot集成Activiti7工作流
|
Java API
【问题篇】activiti工作流转办并处理备注问题
【问题篇】activiti工作流转办并处理备注问题
307 2
|
前端开发 JavaScript Java
基于Springboot+SpringSecurity+Activiti7实现的工作流系统可方便二次开发(附完整源码)
基于Springboot+SpringSecurity+Activiti7实现的工作流系统可方便二次开发(附完整源码)
773 0