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