一、ProcessEngine。
談到activiti核心的API那肯定是ProcessEngine類,其他所有的類都是由他而來。
如何創建:ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
查看getDefaultProcessEngine()就可以發現activiti會默認加載classpath路徑下activiti.cfg.xml文件。
activiti.cfg.xlm文件配置如下:
如上圖可見此配置是jdbc配置信息,操作activiti的23張表。
查看org.activiti.engine.impl.cfg.StandaloneInMemProcessEngineConfiguration類可見activity默認支持h2數據庫。
1、RepositoryService:管理流程部署及定義。
1)該類是activiti的倉庫服務類,倉庫及指流程定義文檔的兩個文件:.bpmn、.png
2)如何創建:RespositoryService respositoryService = processEngine.getRepositoryService();
3)該類可以創建出一個DeploymentBuilder對象,用於部署流程。Deployment deployment = respositoryService.createDeployment().deploy();
4)刪除流程定義:respositoryService.deleteDeployment(deploymentId);
2、RuntimeService:執行管理,包括啓動,查詢,刪除流程定義。
1)是activiti的流程執行服務類。可以從這個服務類中獲取很多關於流程執行相關的信息。
2)如何創建:processEngine.getRuntimeService();
3、TaskService:任務管理。
1)是activiti的任務服務類。可以從這個類中獲取任務的信息。
2)如何創建:processEngine.getTaskService();
4、HistoryService:歷史查詢,包含流程變量查詢,流程查詢,流程執行對象查詢。
1)是activiti的查詢歷史信息的類。在一個流程執行完成後,這個對象爲我們提供查詢歷史信息。
2)如何創建:processEngine.getHistoryService();
5、IdentityService:組織機構管理。
如何創建:processEngine.getIdentityService ();
6、FormService:任務表單管理。
如何創建:processEngine.getFormService();
7、ManagementService。
如何創建:processEngine.getManagementService();
二、ProcessDefinition。
流程定義對象,可以從這個類中獲取資源文件等等。
三、ProcessInstance。
代表流程定義的執行實例,一個流程實例包含這一個流程上面的所有的節點,那麼我們可以通過這個類獲取到整個流程中當前所有信息,一個流程實例表示一個流程從開始到結束的最大流程分支,即一個流程只有一個流程實例。
四、Execution。
activiti中用這個對象描述流程執行的每一個節點。在沒有併發的情況下,Execution即爲ProcessInstance。流程按照流程定義的規則執行一次的過程就可以表示執行對象Execution。
查看源代碼即可發現,ProcessInstance集成了Execution。
在單線流程中Execution即爲ProcessInstance,但是在併發情況,即有分支流程的情況下,每一條流程就有一個Execution了。
總結:
* 一個流程中,流程執行對象(Execution)可以有多個,但是流程實例對象(ProcessInstance)只能有一個。
* 當流程按照流程定義的規則只執行一次的時候,流程執行對象(Execution)即爲流程實例對象(ProcessInstance)。