<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                歷史是記錄流程執行過程中發生的事情,并將其永久存儲的組件。與運行時數據不同,歷史數據在流程實例完成以后仍保存在數據庫中。 有6個歷史實體: * HistoricProcessInstance 保存當前及已結束流程實例的信息。 * HistoricVariableInstance 保存流程變量或任務變量的最新值。 * HistoricActivityInstance 保存活動(流程中的節點)的一次執行的信息。 * HistoricTaskInstance 保存當前與歷史(完成及刪除的)任務實例的信息。 * HistoricIdentityLink 保存任務及流程實例、當前及歷史的身份關聯的信息。 * HistoricDetail 保存與歷史流程實例、活動實例或任務實例等有關的多種信息。 歷史與當前進行中的流程實例都在數據庫中保存歷史實體,因此可以選擇直接查詢歷史表,以減少對運行時流程實例數據的訪問,并提高運行時執行的性能。 歷史查詢可以調用 HistoryService 接口中的API來完成。下面是幾個例子。 <br/> **1. 歷史流程實例查詢:HistoricProcessInstance** ```java @Test public void historicProcessInstancesQuery() { ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine(); HistoryService historyService = processEngine.getHistoryService(); List<HistoricProcessInstance> list = historyService.createHistoricProcessInstanceQuery() .finished() //流程實例已完成 .processDefinitionId("evectionHistory:2:117504") //流程定義Id .includeProcessVariables() //包含全局流程變量 .orderByProcessInstanceDuration() .desc() //根據整個流程實例完成時間降序排序 .listPage(0, 10); //分頁查詢 list.forEach(h -> { System.out.println("業務標識: " + h.getBusinessKey()); System.out.println("流程部署Id: " + h.getDeploymentId()); System.out.println("流程實例Id: " + h.getId()); System.out.println("完成整個流程實例所花的時間: " + h.getDurationInMillis() + "ms"); System.out.println("流程結束節點Id: " + h.getEndActivityId()); System.out.println("流程開始節點Id: " + h.getStartActivityId()); System.out.println("流程定義Id: " + h.getProcessDefinitionId()); System.out.println("流程key: " + h.getProcessDefinitionKey()); System.out.println("流程定義版本: " + h.getProcessDefinitionVersion()); System.out.println("流程實例變量: " + h.getProcessVariables()); System.out.println(""); }); //業務標識: null //流程部署Id: 117501 //流程實例Id: 120001 //完成整個流程實例所花的時間: 148801ms //流程結束節點Id: _7 //流程開始節點Id: _2 //流程定義Id: evectionHistory:2:117504 //流程key: evectionHistory //流程定義版本: 2 //全局流程變量: {assignee4=趙六, assignee3=王五, assignee2=李四, assignee1=張三} } ``` **2. 歷史變量實例查詢:HistoricVariableInstance** ```java @Test public void historicVariableInstanceQuery() { ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine(); HistoryService historyService = processEngine.getHistoryService(); List<HistoricVariableInstance> list = historyService.createHistoricVariableInstanceQuery() .processInstanceId("120001") //流程實例Id .orderByVariableName() .desc() //根據變量名稱降序排序 .list(); list.forEach(h -> { System.out.println("流程變量Id: " + h.getId()); System.out.println("流程實例Id: " + h.getProcessInstanceId()); System.out.println("變量名: " + h.getVariableName()); System.out.println("變量類型: " + h.getVariableTypeName()); System.out.println("變量值: " + h.getValue()); System.out.println(""); }); //流程變量Id: 120002 //流程實例Id: 120001 //變量名: assignee4 //變量類型: string //變量值: 趙六 //... } ``` **3. 歷史活動實例查詢:HistoricActivityInstance** ```java @Test public void historicActivityInstanceQuery() { ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine(); HistoryService historyService = processEngine.getHistoryService(); List<HistoricActivityInstance> list = historyService.createHistoricActivityInstanceQuery() .activityType("userTask") //活動節點類型 .processDefinitionId("evectionHistory:2:117504") //流程定義Id .finished() //已經完成的節點 .orderByHistoricActivityInstanceEndTime() .desc() //根據完成時間降序排序 .listPage(0, 10); //分頁查詢 list.forEach(h -> { System.out.println("節點Id: " + h.getActivityId()); System.out.println("節點名稱: " + h.getActivityName()); System.out.println("節點類型: " + h.getActivityType()); System.out.println("節點負責人: " + h.getAssignee()); System.out.println("流程定義Id: " + h.getProcessDefinitionId()); System.out.println("流程實例Id: " + h.getProcessInstanceId()); System.out.println("任務Id: " + h.getTaskId()); System.out.println("該節點任務完成時間: " + h.getDurationInMillis() + "ms"); System.out.println(""); }); //節點Id: _6 //節點名稱: 財務審批 //節點類型: userTask //節點負責人: 趙六 //流程定義Id: evectionHistory:2:117504 //流程實例Id: 120001 //任務Id: 127502 //該節點任務完成時間: 13696ms //... } ``` **4. 歷史詳情查詢:HistoricDetail** ```java /** * 歷史詳情查詢:HistoricVariableUpdate(歷史變量更新記錄) */ @Test public void historicVariableUpdateQuery() { ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine(); HistoryService historyService = processEngine.getHistoryService(); List<HistoricVariableUpdate> list = (List) historyService.createHistoricDetailQuery() .variableUpdates() .processInstanceId("120001") .orderByTime() .asc() .list(); } /** * 歷史詳情查詢:HistoricFormProperties(歷史表單參數記錄) */ @Test public void historicFormPropertiesQuery() { ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine(); HistoryService historyService = processEngine.getHistoryService(); List<HistoricFormProperty> list = (List) historyService.createHistoricDetailQuery() .formProperties() .processInstanceId("120001") .orderByVariableName().asc() .list(); } ``` **5. 歷史任務實例查詢:HistoricTaskInstance** ```java @Test public void historicTaskInstanceQuery() { ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine(); HistoryService historyService = processEngine.getHistoryService(); List<HistoricTaskInstance> list = historyService.createHistoricTaskInstanceQuery() .finished() //已完成的任務 .processInstanceId("120001") //流程實例Id .includeProcessVariables() //包含全局流程變量 .includeTaskLocalVariables() //包含局部流程變量 .orderByHistoricTaskInstanceDuration() .desc() //根據任務完成時間降序排序 .listPage(0, 10); //分頁查詢 list.forEach(h -> { System.out.println("任務開始時間: " + h.getStartTime()); System.out.println("任務完成時間: " + h.getEndTime()); System.out.println("任務負責人: " + h.getAssignee()); System.out.println("流程定義Id: " + h.getProcessDefinitionId()); System.out.println("流程實例Id: " + h.getProcessInstanceId()); System.out.println("任務所在節點Id: " + h.getTaskDefinitionKey()); System.out.println("任務名稱: " + h.getName()); System.out.println("任務Id: " + h.getId()); System.out.println("全局變量: " + h.getProcessVariables()); System.out.println("局部變量: " + h.getTaskLocalVariables()); System.out.println(""); }); //任務開始時間: Tue Mar 01 21:08:25 CST 2022 //任務完成時間: Tue Mar 01 21:09:36 CST 2022 //任務負責人: 張三 //流程定義Id: evectionHistory:2:117504 //流程實例Id: 120001 //任務所在節點Id: _3 //任務名稱: 創建出差申請 //任務Id: 120009 //全局變量: {assignee4=趙六, assignee3=王五, assignee2=李四, assignee1=張三} //局部變量: {} //... } ``` **6. 身份關聯信息查詢:HistoricIdentityLink** ```java @Test public void historicIdentityLinkQuery() { ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine(); HistoryService historyService = processEngine.getHistoryService(); //根據流程實例Id查詢 List<HistoricIdentityLink> list = historyService.getHistoricIdentityLinksForProcessInstance("120001"); list.forEach(h -> { System.out.println("流程實例Id: " + h.getProcessInstanceId()); System.out.println("任務Id: " + h.getTaskId()); System.out.println("用戶: " + h.getUserId()); System.out.println("身份關聯類型: " + h.getType()); System.out.println(""); }); //流程實例Id: 120001 //任務Id: null //用戶: 趙六 //身份關聯類型: participant //... } ``` **** 參考文檔:https://tkjohn.github.io/flowable-userguide/#history
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看