有时候我们一个流程定义不需要的,包括所有版本,这时候我们在用户界面上一个一个删除太麻烦;
所有有时候我们又这样的需求,一下子把所有Key相同的流程定义全部删除;
我们的思路是这样的;
第一步:根据Key获取所有的流程定义;
第二步:遍历集合,获取每个流程定义的流程部署Id
第三步:我们根据流程部署Id即可删除所有的流程定义;
上代码:
/**
* 删除所有Key相同的流程定义
* @throws Exception
*/
@Test
public void deleteByKey()throws Exception{
List<ProcessDefinition> pdList=processEngine.getRepositoryService() // 获取service类
.createProcessDefinitionQuery() // 创建流程定义查询
.processDefinitionKey("mySecondProcess") // 根据Key查询
.list();
for(ProcessDefinition pd:pdList){ // 遍历集合 获取流程定义的每个部署Id,根据这个id来删除所有流程定义
processEngine.getRepositoryService()
.deleteDeployment(pd.getDeploymentId(), true);
}
}完整代码:http://pan.baidu.com/s/1o8w43Yq