需求
当这个流程被废弃的时候,需要对activiti事先定义好的流程进行删除
涉及到的库表
方案
这里有两种删除方式,因为涉及到两张表,部署表和流程定义表。
第一种方式
根据流程部署id删除这一次部署的所有流程定义,建议一次部署只部署一个流程,根据流程部署id删除一个流程的定义
约束:如果该流程定义没有启动流程实例可以删除,如果该流程定义以及启动流程实例,不允许删除,如果删除就抛出异常
第二种方式
采用级联删除,不管流程定义是否启动了实例(是否使用),通过级联删除将该流程定义及相关的信息全部删除;但是一般情况下,不采用级联删除,而是采用对该流程进行暂停操作,特殊情况下需要删除流程定义及相关信息,就要使用级联删除,删除的功能给超级管理员用
代码实现
//流程定义的删除
@Test
public void deleteProcessDefinition(){
//得到repositoryService
RepositoryService repositoryService = processEngine
.getRepository