Activiti——工作流程-核心API(二)
.1 ProcessEngine
說(shuō)明:
1)?在Activiti中最核心的類(lèi),其他的類(lèi)都是由他而來(lái)。
2)?產(chǎn)生方式:
在前面看到了兩種創(chuàng)建ProcessEngine(流程引擎)的方式(http://blog.csdn.net/u013490585/article/details/72858188),而這里要簡(jiǎn)化很多,調(diào)用ProcessEngines的getDefaultProceeEngine方法時(shí)會(huì)自動(dòng)加載classpath下名為activiti.cfg.xml文件。
3)?可以產(chǎn)生RepositoryService
4)?可以產(chǎn)生RuntimeService
5)?可以產(chǎn)生TaskService
各個(gè)Service的作用:
| RepositoryService | 管理流程定義 |
| RuntimeService | 執(zhí)行管理,包括啟動(dòng)、推進(jìn)、刪除流程實(shí)例等操作 |
| TaskService | 任務(wù)管理 |
| HistoryService | 歷史管理(執(zhí)行完的數(shù)據(jù)的管理) |
| IdentityService | 組織機(jī)構(gòu)管理 |
| FormService | 一個(gè)可選服務(wù),任務(wù)表單管理 |
| ManagerService | 使用Activiti的定制環(huán)境中基本上不會(huì)用到。 它可以查詢(xún)數(shù)據(jù)庫(kù)的表 和表的元數(shù)據(jù)。另外,它提供了查詢(xún)和管理異步操作的功能。 |
.2:RepositoryService
是Activiti的倉(cāng)庫(kù)服務(wù)類(lèi)。所謂的倉(cāng)庫(kù)指流程定義文檔的兩個(gè)文件:bpmn文件和流程圖片。
1)?產(chǎn)生方式
2)?可以產(chǎn)生DeploymentBuilder,用來(lái)定義流程部署的相關(guān)參數(shù)
3)?刪除流程定義
.3:RuntimeService
是activiti的流程執(zhí)行服務(wù)類(lèi)??梢詮倪@個(gè)服務(wù)類(lèi)中獲取很多關(guān)于流程執(zhí)行相關(guān)的信息。
.4:TaskService
是activiti的任務(wù)服務(wù)類(lèi)??梢詮倪@個(gè)類(lèi)中獲取任務(wù)的信息。
.5:HistoryService
是activiti的查詢(xún)歷史信息的類(lèi)。在一個(gè)流程執(zhí)行完成后,這個(gè)對(duì)象為我們提供查詢(xún)歷史信息。
.6:ProcessDefinition
流程定義類(lèi)??梢詮倪@里獲得資源文件等。
.7:ProcessInstance
?代表流程定義的執(zhí)行實(shí)例,如員工請(qǐng)假,該員工就必須發(fā)出一個(gè)流程實(shí)例的申請(qǐng),一個(gè)流程實(shí)例包括了所有的運(yùn)行節(jié)點(diǎn)。
我們可以利用這個(gè)對(duì)象來(lái)了解當(dāng)前流程實(shí)例的進(jìn)度等信息。流程實(shí)例就表示一個(gè)流程從開(kāi)始到結(jié)束的最大的流程分支,
即一個(gè)流程中流程實(shí)例只有一個(gè)。
.8:Execution
Activiti用這個(gè)對(duì)象去描述流程執(zhí)行的每一個(gè)節(jié)點(diǎn)。在沒(méi)有并發(fā)的情況下,Execution就是同ProcessInstance。流程按照流程定義的規(guī)則執(zhí)行一次的過(guò)程,就可以表示執(zhí)行對(duì)象Execution。
如圖為ProcessInstance的源代碼:
?
?
從源代碼中可以看出ProcessInstance就是Execution。但在現(xiàn)實(shí)意義上有所區(qū)別:
?
?
在單線(xiàn)流程中,如上圖的貸款流程,ProcessInstance與Execution是一致的。
?
?
這個(gè)例子有一個(gè)特點(diǎn):wire money(匯錢(qián))和archive(存檔)是并發(fā)執(zhí)行的。?這個(gè)時(shí)候,總線(xiàn)路代表ProcessInstance,而分線(xiàn)路中每個(gè)活動(dòng)代表Execution。
總結(jié):
*?一個(gè)流程中,執(zhí)行對(duì)象可以存在多個(gè),但是流程實(shí)例只能有一個(gè)。
*?當(dāng)流程按照規(guī)則只執(zhí)行一次的時(shí)候,那么流程實(shí)例就是執(zhí)行對(duì)象。
?
總結(jié)
以上是生活随笔為你收集整理的Activiti——工作流程-核心API(二)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 移机多少钱啊?
- 下一篇: html滑动逐渐覆盖效果,创意jQuer