在工作流中,我們一切工作流的基本就是工作引擎(ProcessEngine),繼承于EngineService接口,包括流程部署,數(shù)據(jù)庫(kù)連接都是靠著ProcessEngine來(lái)實(shí)現(xiàn)的。而ProcessEngineConfiguration:流程引擎配置,可以設(shè)置數(shù)據(jù)庫(kù)等,默認(rèn)的數(shù)據(jù)庫(kù)是h3,持久化實(shí)現(xiàn)使用的Mybatis,這里我們用的是MySQL。
站在用戶(hù)的角度思考問(wèn)題,與客戶(hù)深入溝通,找到豐都網(wǎng)站設(shè)計(jì)與豐都網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗(yàn),讓設(shè)計(jì)與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個(gè)性化、用戶(hù)體驗(yàn)好的作品,建站類(lèi)型包括:成都網(wǎng)站制作、成都網(wǎng)站設(shè)計(jì)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣、域名申請(qǐng)、網(wǎng)頁(yè)空間、企業(yè)郵箱。業(yè)務(wù)覆蓋豐都地區(qū)。
那么既然無(wú)論是jbpm或者是activiti都需要ProcessEngine來(lái)驅(qū)動(dòng),那么我們就說(shuō)一下工作流引擎的使用吧。
當(dāng)我們將我們的業(yè)務(wù)畫(huà)成圖的時(shí)候,然后利用工作流引擎部署,也就是將我們的流程圖信息放到數(shù)據(jù)庫(kù),圖和代碼如下:
act_hi_taskinst:已經(jīng)執(zhí)行完的歷史任務(wù)信息
act_hi_procinst:流程實(shí)例的歷史表,存放執(zhí)行完畢的流程實(shí)例信息
act_hi_actinst:存放歷史所有完成的活動(dòng)
現(xiàn)在我們對(duì)表有一個(gè)大致的了解,那么接下來(lái)我們就按照我們既定的流程去執(zhí)行我們的請(qǐng)假,例如第一個(gè)項(xiàng)目經(jīng)理叫張三,那么這個(gè)流程實(shí)例已啟動(dòng),首先需要張三去執(zhí)行操作,那么我們我們看一下張三的執(zhí)行任務(wù)的詳情,代碼如下:
[java]view plain copy
/**
* 查找個(gè)人當(dāng)前的要執(zhí)行的任務(wù)
*/
@Test
public void findMyTaskInfo(){
String assignee = "張三";
List<Task> listTask = processEngine.getTaskService()
.createTaskQuery()
.taskAssignee(assignee)
.list();
if (listTask!= null && listTask.size() >0) {
for (Task task : listTask) {
System.out.println("任務(wù)ID:" + task.getId());
System.out.println("任務(wù)名稱(chēng):" + task.getName());
System.out.println("任務(wù)時(shí)間:" + task.getCreateTime());
System.out.println("任務(wù)的班里人:" + task.getAssignee());
System.out.println("任務(wù)的實(shí)例ID:" + task.getProcessDefinitionId());
System.out.println("執(zhí)行對(duì)象的ID:" + task.getExecutionId());
System.out.println("任務(wù)的班里人:" + task.getAssignee());
System.out.println("流程定義ID:" + task.getProcessInstanceId());
}
}
}
打印信息如下:任務(wù)ID:304,任務(wù)名稱(chēng):【項(xiàng)目經(jīng)理】審批,任務(wù)時(shí)間:Sat Jan 23 14:54:35 CST 2016,任務(wù)的班里人:張三 任務(wù)的實(shí)例ID:LeaveBill:2:204 執(zhí)行對(duì)象的ID:301 任務(wù)的班里人:張三 流程定義ID:301
那么接下來(lái)我就把任務(wù)ID為304的一個(gè)流程結(jié)束,也就是項(xiàng)目經(jīng)理同意請(qǐng)假,代碼如下:
[java]view plain copy
/**完成任務(wù)*/
@Test
public void completeMyPersoinTask() {
String taskId = "304";
processEngine.getTaskService()
.complete(taskId);
System.out.println("完成任務(wù),任務(wù)ID:" + taskId);
}
然后我繼續(xù)執(zhí)行查詢(xún)個(gè)人任務(wù)的時(shí)候,我們只能查到主任的任務(wù)了,因?yàn)轫?xiàng)目經(jīng)理已經(jīng)執(zhí)行完畢,所以當(dāng)前執(zhí)行的任務(wù)是看不到的,但是在歷史信息中是存在的。
如果我們啟動(dòng)了實(shí)例的話,查詢(xún)當(dāng)前信息的話,實(shí)在act_ru_*的表中查詢(xún),根據(jù)任務(wù)有關(guān)的服務(wù),都是taskService,當(dāng)然Activiti還有很多的服務(wù),例如RepositoryService,RuntimeService, HistoryService等服務(wù)。
大致總結(jié)一下,就是先部署,再啟動(dòng),個(gè)人登陸系統(tǒng)后,根據(jù)個(gè)人姓名,查到任務(wù)ID,完成個(gè)人任務(wù),直到全部完成
網(wǎng)站題目:activiti部署、執(zhí)行,完成簡(jiǎn)單示例
本文地址:http://chinadenli.net/article46/jsichg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供外貿(mào)建站、App設(shè)計(jì)、虛擬主機(jī)、服務(wù)器托管、定制網(wǎng)站、企業(yè)網(wǎng)站制作
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)