當我們的部署的流程定義有一天不想用了,怎麼去刪除它呢?
刪除部署的流程定義
注意:刪除部署的流程需要分爲兩種情況
- 沒有啓動流程
- 啓動流程了
步驟:
- 獲取processEngine對象
- 創建RepositoryService對象
- 獲取流程部署的Id
- 執行刪除流程定義
第一步:由於第三步獲取流程部署的Id的代碼使用次數會比較多,建議先封裝一下(ReturnDeploymentId 類)
public static class ReturnDeploymentId {
public String getDeploymentId(String processDefinitionKey){
ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
RepositoryService repositoryService=processEngine.getRepositoryService();
ProcessDefinitionQuery processDefinitionQuery=repositoryService.createProcessDefinitionQuery();
ProcessDefinition processDefinition=processDefinitionQuery.processDefinitionKey(processDefinitionKey)
.orderByProcessDefinitionVersion()
.desc()
.singleResult();
System.out.println("流程部署的ID:"+processDefinition.getDeploymentId());
return processDefinition.getDeploymentId();
}
}
第二步:創建類DeleteProcessDefinition
沒有啓動流程:【repositoryService.deleteDeployment(processDefinitionKey)】
public class DeleteProcessDefinition {
public static void main(String[] args) {
//1:獲取processEngine對象
ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
//2:創建RepositoryService對象
RepositoryService repositoryService=processEngine.getRepositoryService();
//3:獲取流程部署的Id
String processDefinitionKey= ReturnDeploymentId.getDeploymentId("day");
//4:執行刪除流程定義
repositoryService.deleteDeployment(processDefinitionKey);
}
}
啓動流程了: 【repositoryService.deleteDeployment(processDefinitionKey,true)】
參數true代表級聯刪除,此時就會先刪除沒有完成的流程結點,最後就可以刪除流程定義信息 false的值代表不級聯,默認時爲false
public class DeleteProcessDefinition {
public static void main(String[] args) {
//1:獲取processEngine對象
ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
//2:創建RepositoryService對象
RepositoryService repositoryService=processEngine.getRepositoryService();
//3:獲取流程部署的Id
String processDefinitionKey= ReturnDeploymentId.getDeploymentId("day");
//4:執行刪除流程定義
repositoryService.deleteDeployment(processDefinitionKey,true);
}
}
我們看下數據庫被影響的表
除了act_ge_property外,其餘表信息都被清空
原創文章,未經允許禁止盜用