1. 程式人生 > >【Activti與SpringBoot整合後相關核心Api的介紹】

【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,也就算是完成了。當然,還有其餘的有流程圖,流程變數,等的介紹。會在其餘的文章中。