【Activti與SpringBoot整合後相關核心Api的介紹】
使用編譯器:Eclipse(因為流程圖使用的是Eclipse的繪圖工具,所以程式碼也就直接在上面編輯,編碼Idea也是非常好用的工具,同學如果不習慣的話,可以畫完圖,複製到Idea上,編寫程式碼)
核心Api介紹:
# 核心API介紹
ProcessEngine(最核心Api)
產生方式:
ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
簡化了上述程式碼,呼叫ProcessEngine的getDefaultProcessEngine方法時會自動載入classpath下的activiti.cfg.xml檔案。
它是activiti中最核心的類,其他類都是由他而來,可以呼叫如下service:
service 作用
RepositoryService | 管理流程定義
TaskServiceRuntimeService | 執行管理,包括啟動、推進、刪除流程例項等操作
TaskService | 任務管理
HistoryService | 歷史管理(執行完的資料的管理)
IdentityService | 組織機構管理
FormService | 一個可選服務,任務表單管理
2:RepositoryService
RepositoryService是activiti中的倉庫服務類,呼叫方式如下:
repositoryService repositoryService = processEngine.getRepositoryService();
另外還可以用來定義流程部署的相關引數:
DeploymentBuilder deploymentBuilder = repositoryService.createDeployment();
以及刪除流程定義:
repositoryService.deleteDeployment(deployId);
3: RuntimeService
它是activiti的流程執行服務類。可以從中獲取關於流程執行的相關資訊。
4: TaskService
它是activiti的任務服務類,可以從中獲取任務的資訊。
5: HistoryService
它是activiti中查詢歷史資訊的類,在一個流程執行完成後,可以通過它來查詢歷史資訊。
6: ProcessDefinition
流程定義類,可以從中獲取資原始檔
7: ProcessInstance
代表流程定義的執行例項。例如王一一請假,那他就需要發起一個流程例項的申請。一個流程例項包含了所有的執行節點。<font color=red size=3 face=“黑體”>*流程例項表示一個流程從開始到結束的最大的流程分支,也就是說一個流程中只有一個流程例項!*</font>
8: Execution
activiti用這個物件去描述流程執行的每一個節點。在流程沒有併發的情況下(即單線流程),execution跟ProcessInstance是一樣的。
當然,上述的核心類和Service是Activti的基礎,在整合以後,獲取以及使用並沒有那麼繁瑣,Boot也為我們解決了很多問題,可以讓我們更輕鬆的使用,話不多少,直接上程式碼。測試我使用的是SwaggerUI,配置也是非常簡單,網上的教程很多,大家搜一下,也應該很容易找到,所以我也就不過多的介紹他的配置了。
正如上圖,因為起初service都是通過獲取核心以後,調取相關get方法得到,但是在整合了Boot以後,我們只需要自動注入即可,核心類並不需要我們太多的去操心,這樣我們就方便了好多。
第一步,當然是部署流程定義,上文我介紹我是自動部署,所以我就將手動部署的相關程式碼,附在下變,方便大家使用。
總共用三種方式。
第一種:
第二種:
第三種:
在流程定義部署成功以後,我們就可以進行第二步驟,啟動流程定義,獲取流程例項,其實也就是我們實際業務中的,當我們啟動一個工作流,比如請假流程,就會通過看流程定義,獲取流程例項,與業務流程繫結。
然後,我們就需要獲取流程任務辦理人的相關任務,其實很簡單,也就是Api的呼叫,常用方法。
最後,完成我的個人任務。
這樣一個簡單的工作流,從定義,部署,獲取,查詢,完成,也就是這樣一個大致的流程。最後我們想知道,流程例項完成結束了沒有,也就調取Api即可。
這樣,一個工作流的HelloWord,也就算是完成了。當然,還有其餘的有流程圖,流程變數,等的介紹。會在其餘的文章中。