Activiti(九)刪除部署的流程定義

當我們的部署的流程定義有一天不想用了,怎麼去刪除它呢?


刪除部署的流程定義


注意:刪除部署的流程需要分爲兩種情況

  • 沒有啓動流程
  • 啓動流程了

步驟:

  1. 獲取processEngine對象
  2. 創建RepositoryService對象
  3. 獲取流程部署的Id
  4. 執行刪除流程定義

第一步:由於第三步獲取流程部署的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外,其餘表信息都被清空



原創文章,未經允許禁止盜用



 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章