Activiti——流程执行历史记录(七)
轉(zhuǎn)自:http://blog.csdn.net/zjx86320/article/details/50363544
之前的幾篇文章,為大家簡(jiǎn)單的介紹了部署流程定義、啟動(dòng)流程實(shí)例、查看和辦理個(gè)人任務(wù)以及如何設(shè)置和獲取流程變量,這一系列的活動(dòng)組成了一個(gè)完整的執(zhí)行流程,那么一個(gè)執(zhí)行完的流程我們?nèi)绾尾榭聪嚓P(guān)的定義呢,這篇博文就為大家簡(jiǎn)單的介紹一下流程執(zhí)行的歷史記錄查詢。
? ??一、查詢歷史流程實(shí)例
[java]?view plaincopy
- /**查詢歷史流程實(shí)例*/??
- @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());??
- ????????}??
- ????}??
- }??
? ? ?
? ? ?從表中我們可以看到,我們可以通過流程實(shí)例ID和流程部署ID得到對(duì)象的歷史流程實(shí)例,從而獲得該實(shí)例的開始時(shí)間和結(jié)束時(shí)間及其他一些屬性定義。
? ? ?二、查詢歷史活動(dòng)
[java]?view plaincopy
- /**查詢歷史活動(dòng)?
- ?*?問題:HistoricActivityInstance對(duì)應(yīng)哪個(gè)表?
- ?*?問題: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());??
- ????????}??
- ????}??
- }??
? ? ?三、查詢歷史任務(wù)
[java]?view plaincopy
- /**查詢歷史任務(wù)????
- ?*?問題:HistoricTaskInstance對(duì)應(yīng)哪個(gè)表*/??
- @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());??
- ????????}??
- ????}??
- }??
? ? ?查詢歷史任務(wù),就是查詢摸一次流程的執(zhí)行一共經(jīng)歷了多少個(gè)任務(wù),對(duì)應(yī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í)行一共設(shè)置的流程變量,對(duì)應(yīng)表:act_hi_varinst
? ? ?總結(jié):
? ? ?由于數(shù)據(jù)庫(kù)中保存著歷史信息以及正在運(yùn)行的流程實(shí)例信息,在實(shí)際項(xiàng)目中對(duì)已完成任務(wù)的查看頻率遠(yuǎn)不及對(duì)待辦和運(yùn)行中的任務(wù)的查看,所以activiti采用分開管理,把正在運(yùn)行的交給RuntimeService管理,而歷史數(shù)據(jù)交給HistoryService來(lái)管理。
總結(jié)
以上是生活随笔為你收集整理的Activiti——流程执行历史记录(七)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 计算机在线咨询,计算机科学与技术
- 下一篇: 校园个性签名搞笑幽默