在开发中肯定会有一些流程不需要了,要删除,Activiti中也是存在删除操作的,
通过流程定义部署ID来执行删除流程定义。
不说那么多直接上代码:
/**
* 删除流程定义
*/
@Test
public void delete(){
processEngine.getRepositoryService()
.deleteDeployment("12501"); // 流程部署ID
System.out.println("刪除流程定义!");
}
需要注意的是有一种情况下比如: 这个流程定义的流程实例在运行中,尚未结束。
这时候如果你执行删除肯定会报错的。(这个就不用我多讲了吧,表与表之间的主外键关系)
当然在某种情况下必须要删除就要使用级联删除:
/**
* 级联删除 已经在使用的流程实例信息也会被级联删除
*/
@Test
public void deleteCascade(){
processEngine.getRepositoryService()
.deleteDeployment("12501", true); // 默认是false true就是级联删除
System.out.println("刪除流程定义");
}
这种方式在属于在任何情况下多能直接删除流程定义,在实际开发中一般都是使用这种方式。