背景:
公司的框架继承了Activiti流程引擎,当在开发环境修改了bpmn文件之后push到现场后,由于现场发布了新的流程,是不会重新读取修改后的bpmn文件到数据库,也就是现场的流程定义并没有被修改成功。
为了能重新加载bpmn文件,这是就需要删除发布的流程。
但是存在实例的流程是无法删除的,所以需要从实例开始删除。
删实例–> 删流程–>重载bpmn文件–>发布修改后的新流程
Activiti表简介
1) 所有的表名默认以“ACT_”开头。
2) ACT_GE_* : “GE”代表“General”(通用),用在各种情况下;
3) ACT_HI_* : “HI”代表“History”(历史),这些表中保存的都是历史数据,比如执行过的流程实例、变量、任务,等等。
4) ACT_ID_* : “ID”代表“Identity”(身份),这些表中保存的都是身份信息,如用户和组以及两者之间的关系。如果Activiti被集成在某一系统当中的话,这些表可以不用,可以直接使用现有系统中的用户或组信息;
5) ACT_RE_* : “RE”代表“Repository”(仓库),这些表中保存一些‘静态’信息,如流程定义和流程资源(如图片、规则等);
6) ACT_RU_* : “RU”代表“Runtime”(运行时),这些表中保存一些流程实例、用户任务、变量等的运行时数据。Activiti只保存流程实例在执行过程中的运行时数据,并且当流程结束后会立即移除这些数据
执行:
-
通过 表:ACT_RU_TASK 在 proc_def_id_ 找到具体的 proc_inst_id_
-
在 act_hi_* 和 act_ru_ * 的表中找到有数据的表 (具体的表在下面)
-
最后通过 批量修改,将select * 改为 delete 删除有数据的表即可
----找到对应proc_inst_id
SELECT proc_inst_id FROM
ACT_RU_TASK where proc_def_id_ = 'qjshlc_xqj' ;
/**
proc_inst_id_ in('440013','440039','440073' ,'440100')
*/
select * from act_hi_actinst where proc_inst_id_ in('440013',