您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關Activiti中常用服務組件是什么,文章內容質量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。
Activiti針對工作流的一系列操作,都封裝在他的服務組件當中,因此要學習activiti,首先要做的就是學習了解他的常用服務組件。
RepositoryService:提供一系列管理流程定義和流程部署的API。
RuntimeService:在流程運行時對流程實例進行管理與控制。
TaskService:對流程任務進行管理,例如任務提醒、任務完成和創建任務分本任務等。
IdentityService:提供對流程角色數據進行管理的API,這些角色數據包括用戶組、用戶以及它們之間的關系。
ManagementService:提供對流程引擎進行管理和維護的服務。
HistoryService:對流程的歷史數據進行操作,包括查詢、刪除這些歷史數據。
FormService:表單Service,用于讀取和流程,任務相關的表單數據。
DynamicBpmnService:使用該服務,可以不需要重新部署流程模型,就可以實現對流程模型的部分修改。
如何理解服務組件之間的關系,必須先從工作流的使用角度來理解。
以報銷流程為例:
工作流并不是憑空出現的,并不是員工提起報銷請求,系統就毫無根據的生成了工作流。而是需要管理員來規定報銷這個工作流中各個環節,各個條件。那么管理員如何來使用activiti來定義一個新的工作流呢?RepositoryService為我們提供了與此相關的一系列方法,可以讓我們能夠定義工作流并將工作流部署到服務器當中去。可以將RepositoryService理解為創建java面向對象思想中的類。
當有了一個流程的定義,員工如何去申請一個報銷流程呢,因為每一個員工情況都不一樣,他們都需要有個獨立的流程來解決各自的問題(類似于java中的對象)。RuntimeService為我們提供了相應的方法,來根據一個流程定義去創建流程實例,并可以對流程實例進行一系列的操作。
此處還有一個task的概念,task可以理解為我們流程圖中的一個審批任務(節點),一個流程實例只要被創建了并且還沒有結束,就一個其中某一個節點上。而我們也可以使用RuntimeService來獲取我們流程當前所處于task。而TaskService則可以對task進行完成、管理各種操作。
此外activiti還通過IdentityService提供給我們了統一管理提起流程、參與流程的所有用戶和用戶組的一系列方法,并允許通過taskService中的方法為task設定系統中的審批用戶或者用戶組。
而HistoryService則是因為我們有時需要查詢已經走完全部流程的流程實例,他給我們提供一系列操作歷史數據的方法。
ManagementService和DynamicBpmnService暫時用到的還比較少,以后再補充。//todo
普通java項目中我們需要先聲明工作流引擎ProcessEngine ,然后根據工作流引擎來獲取各種服務組件。
ProcessEngine engine= ProcessEngines.getDefaultProcessEngine(); //工作流定義相關服務 RepositoryService rs=engine.getRepositoryService(); //工作流實例相關服務 RuntimeService runtimeService=engine.getRuntimeService(); //任務相關服務服務 TaskService taskService=engine.getTaskService(); //將流程模板存儲到數據庫中 rs.createDeployment().addClasspathResource("first.bpmn").deploy(); //創建一個流程實例 ProcessInstance processInstance=runtimeService.startProcessInstanceByKey("myProcess_1"); //普通員工填寫完成請假任務 task即為當前節點 Task task=taskService.createTaskQuery().processInstanceId(processInstance.getId()).singleResult(); System.out.println("當前流程節點:"+task.getName()); taskService.complete(task.getId());
而spring項目中我們可以直接通過@Autowired注解的方式來獲取我們的服務組件,如下
@Autowired private RuntimeService runtimeService; @Autowired private RepositoryService repositoryService; @Autowired private TaskService taskService; @Autowired private IdentityService identityService; @Autowired private HistoryService historyService;
關于Activiti中常用服務組件是什么就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。