前面我们把流程定义添加 查询讲了,现在讲下流程定义的删除;
比如我们某个流程定义不需要,我们要删除它;这时候我们可以通过接口,通过流程定义部署ID来删除流程定义;
比较简单,我们直接上代码:
/** * 删除流程定义 */ @Test public void delete(){ processEngine.getRepositoryService() .deleteDeployment("12501"); // 流程部署ID System.out.println("delete OK!"); }
上面那种有个问题,一般情况不会有问题,但是,假如这个流程定义的流程实例在运行活动中,未完结。
这时候我们执行上面的代码,会报错;
本质的话,就是数据库里的数据 有主外键关联,不能删除;
我们实际情况的,假如一个流程定义都不需要了。那那些活动的流程实例也直接了当的级联删除;
所以我们这里要搞级联删除;上代码;
/** * 级联删除 已经在使用的流程实例信息也会被级联删除 */ @Test public void deleteCascade(){ processEngine.getRepositoryService() .deleteDeployment("12501", true); // 默认是false true就是级联删除 System.out.println("delete cascade OK!"); }
这时候 任何情况都能直接删除流程定义; 我们开发的时候就用这种;
完整代码:http://pan.baidu.com/s/1dFlrwy9
上一篇:Activiti流程定义查询