有时候我们一个流程定义不需要的,包括所有版本,这时候我们在用户界面上一个一个删除太麻烦;
所有有时候我们又这样的需求,一下子把所有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