Activiti——流程执行历史记录(七)
生活随笔
收集整理的這篇文章主要介紹了
Activiti——流程执行历史记录(七)
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
轉(zhuǎn)自:http://blog.csdn.net/zjx86320/article/details/50363544
之前的幾篇文章,為大家簡單的介紹了部署流程定義、啟動流程實例、查看和辦理個人任務以及如何設置和獲取流程變量,這一系列的活動組成了一個完整的執(zhí)行流程,那么一個執(zhí)行完的流程我們?nèi)绾尾榭聪嚓P的定義呢,這篇博文就為大家簡單的介紹一下流程執(zhí)行的歷史記錄查詢。
? ??一、查詢歷史流程實例
[java]?view plaincopy
- /**查詢歷史流程實例*/??
- @Test??
- public?void?findHisProcessInstance(){?????
- ????List<HistoricProcessInstance>?list?=?processEngine.getHistoryService()??
- ????????????.createHistoricProcessInstanceQuery()??
- ????????????.processDefinitionId("testVariables:2:1704")//流程定義ID??
- ????????????.list();??
- ??????
- ????if(list?!=?null?&&?list.size()>0){??
- ????????for(HistoricProcessInstance?hi:list){??
- ????????????System.out.println(hi.getId()+"???"+hi.getStartTime()+"???"+hi.getEndTime());??
- ????????}??
- ????}??
- }??
? ? ?
? ? ?從表中我們可以看到,我們可以通過流程實例ID和流程部署ID得到對象的歷史流程實例,從而獲得該實例的開始時間和結(jié)束時間及其他一些屬性定義。
? ? ?二、查詢歷史活動
[java]?view plaincopy
- /**查詢歷史活動?
- ?*?問題:HistoricActivityInstance對應哪個表?
- ?*?問題:HistoricActivityInstance和HistoricTaskInstance有什么區(qū)別*/??
- @Test???
- public?void?findHisActivitiList(){??
- ????String?processInstanceId?=?"1801";??
- ????List<HistoricActivityInstance>?list?=?processEngine.getHistoryService()??
- ????????????.createHistoricActivityInstanceQuery()??
- ????????????.processInstanceId(processInstanceId)??
- ????????????.list();??
- ????if(list?!=?null?&&?list.size()>0){??
- ????????for(HistoricActivityInstance?hai?:?list){??
- ????????????System.out.println(hai.getId()+"??"+hai.getActivityName());??
- ????????}??
- ????}??
- }??
? ? ?三、查詢歷史任務
[java]?view plaincopy
- /**查詢歷史任務????
- ?*?問題:HistoricTaskInstance對應哪個表*/??
- @Test??
- public?void?findHisTaskList(){??
- ????String?processInstanceId?=?"1801";??
- ????List<HistoricTaskInstance>?list?=?processEngine.getHistoryService()??
- ????????????.createHistoricTaskInstanceQuery()??
- ????????????.processInstanceId(processInstanceId)??
- ????????????.list();??
- ????if(list!=null?&&?list.size()>0){??
- ????????for(HistoricTaskInstance?hti:list){??
- ????????????System.out.println(hti.getId()+"????"+hti.getName()+"???"+hti.getClaimTime());??
- ????????}??
- ????}??
- }??
? ? ?查詢歷史任務,就是查詢摸一次流程的執(zhí)行一共經(jīng)歷了多少個任務,對應表:act_hi_taskinst
? ? ?四、查詢歷史流程變量
[java]?view plaincopy
- /**查詢歷史流程變量*/??
- @Test??
- public?void?findHisVariablesList(){??
- ????String?processInstanceId?=?"1801";??
- ????List<HistoricVariableInstance>?list?=?processEngine.getHistoryService()??
- ????????????.createHistoricVariableInstanceQuery()??
- ????????????.processInstanceId(processInstanceId)??
- ????????????.list();??
- ????if(list?!=?null?&&?list.size()>0){??
- ????????for(HistoricVariableInstance?hvi:list){??
- ????????????System.out.println(hvi.getId()+"????"+hvi.getVariableName()+"???"+hvi.getValue());??
- ????????}??
- ????}??
- }??
? ? ?查詢歷史流程變量,就是查詢 某一次流程的執(zhí)行一共設置的流程變量,對應表:act_hi_varinst
? ? ?總結(jié):
? ? ?由于數(shù)據(jù)庫中保存著歷史信息以及正在運行的流程實例信息,在實際項目中對已完成任務的查看頻率遠不及對待辦和運行中的任務的查看,所以activiti采用分開管理,把正在運行的交給RuntimeService管理,而歷史數(shù)據(jù)交給HistoryService來管理。
總結(jié)
以上是生活随笔為你收集整理的Activiti——流程执行历史记录(七)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 计算机在线咨询,计算机科学与技术
- 下一篇: 2022-2028年中国出行O2O市场深