一个流程定义不需要的,包括所有版本,这时候在用户界面上一个一个删除太麻烦;
有时候有这样的需求,一下子把所有Key相同的流程定义批量删除;
实现步骤是:
1、根据Key查询所有的流程定义
2、遍历集合,取得每个流程的部署ID
3、根据流程部署ID即可删除所有的流程定义
/**
* 删除所有Key相同的流程定义
* @throws Exception
*/
@Test
public void deleteByKey()throws Exception{
List<ProcessDefinition> pdList=processEngine.getRepositoryService() // 获取service类
.createProcessDefinitionQuery() // 创建流程定义查询
.processDefinitionKey("helloWorldProcess") // 根据Key查询
.list();
for(ProcessDefinition pd:pdList){ // 遍历集合 获取流程定义的每个部署Id,根据这个id来删除所有流程定义
processEngine.getRepositoryService()
.deleteDeployment(pd.getDeploymentId(), true);
}
}