org.activiti.engine.ActivitiException: Query return 2 results instead of max 1,activiti工作流出現問題


我們的流程一般與業務關聯,流程綁定業務code,出現問題的原因是當前業務code關聯了不止一個流程,比如審批流程A,審批流程B,那么,我們下一次執行流程的時候,傳入一個code,無法確定走哪一個流程圖,所以顯示

org.activiti.engine.ActivitiException: Query return 2 results instead of max 1,

不符合邏輯的,一個業務code按理說只可以走入一個流程,只有流程走完后,才可以用code綁定下一個流程

問題出現開始流程的處理上面

 public ProcessInstance getProcessInstanceByCode(String code) {
        //流程實例
        ProcessInstance processInstance = runtimeService
                .createProcessInstanceQuery()//創建查詢
                .processInstanceBusinessKey(code)//根據業務ID查詢
                .singleResult();//獲得唯一一條數據
        return processInstance;
    }

  正常我們獲取流程id是這樣的,我們需要在開始下一個流程時候進行判斷-》當前業務code有沒有走完的流程

public List<ProcessInstance> getAllProcessInstanceByCode(String code) {
        //流程實例
        //創建查詢
        //根據業務ID查詢
        ProcessInstanceQuery processInstanceQuery = runtimeService.createProcessInstanceQuery().processInstanceBusinessKey(code);
        //獲得code對應所有流程
        List<ProcessInstance> processInstanceList = processInstanceQuery.list();
        return processInstanceList;
    }

獲取當前業務code對應的所有流程,判讀返回集合是否為空集合,List<ProcessInstance> list,如果list是空的,說明沒有關聯其他流程,可以開始一個新流程綁定當前code ,否則需要走完code綁定的其他流程才可以哦

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM