【问题篇】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。

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

目录
相关文章
22activiti - 流程管理定义(查询流程状态)
22activiti - 流程管理定义(查询流程状态)
139 0
18activiti - 流程管理定义(删除key相同的所有不同版本的流程定义)
18activiti - 流程管理定义(删除key相同的所有不同版本的流程定义)
49 0
|
7月前
|
前端开发
基于jeecgboot的flowable流程支持退回到发起人节点表单修改功能
基于jeecgboot的flowable流程支持退回到发起人节点表单修改功能
630 0
|
7月前
|
前端开发
flowable流程设计器的几个bug修改记录
flowable流程设计器的几个bug修改记录
164 0
|
7月前
|
移动开发 前端开发
基于jeecg-boot的flowable流程自定义业务退回撤回或驳回到发起人后的再次流程提交
基于jeecg-boot的flowable流程自定义业务退回撤回或驳回到发起人后的再次流程提交
232 0
|
5月前
|
存储 开发工具 git
好的git管理方法,标明项目_编号_(功能,不过还是在没有bug出现时就提交为好)+Excel表管理的格式
好的git管理方法,标明项目_编号_(功能,不过还是在没有bug出现时就提交为好)+Excel表管理的格式
|
7月前
|
移动开发 前端开发
flowable流程跳转或退回到网关上的用户节点后流程走不下去了
flowable流程跳转或退回到网关上的用户节点后流程走不下去了
368 2
15activiti - 流程管理定义(删除流程定义)
15activiti - 流程管理定义(删除流程定义)
99 0
|
数据库
30activiti - 流程执行历史记录
30activiti - 流程执行历史记录
65 0
27activiti - 流程变量(查询历史的流程变量)
27activiti - 流程变量(查询历史的流程变量)
58 0