Activiti中常用服務(wù)組件是什么

這篇文章將為大家詳細講解有關(guān)Activiti中常用服務(wù)組件是什么,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關(guān)知識有一定的了解。

創(chuàng)新互聯(lián)專業(yè)為企業(yè)提供廣東網(wǎng)站建設(shè)、廣東做網(wǎng)站、廣東網(wǎng)站設(shè)計、廣東網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計與制作、廣東企業(yè)網(wǎng)站模板建站服務(wù),十余年廣東做網(wǎng)站經(jīng)驗,不只是建網(wǎng)站,更提供有價值的思路和整體網(wǎng)絡(luò)服務(wù)。

Activiti針對工作流的一系列操作,都封裝在他的服務(wù)組件當(dāng)中,因此要學(xué)習(xí)activiti,首先要做的就是學(xué)習(xí)了解他的常用服務(wù)組件。

1.ativiti常用服務(wù)組件的基本介紹:

  1. RepositoryService:提供一系列管理流程定義和流程部署的API。 

  2. RuntimeService:在流程運行時對流程實例進行管理與控制。

  3. TaskService:對流程任務(wù)進行管理,例如任務(wù)提醒、任務(wù)完成和創(chuàng)建任務(wù)分本任務(wù)等。

  4. IdentityService:提供對流程角色數(shù)據(jù)進行管理的API,這些角色數(shù)據(jù)包括用戶組、用戶以及它們之間的關(guān)系。

  5. ManagementService:提供對流程引擎進行管理和維護的服務(wù)。

  6. HistoryService:對流程的歷史數(shù)據(jù)進行操作,包括查詢、刪除這些歷史數(shù)據(jù)。

  7. FormService:表單Service,用于讀取和流程,任務(wù)相關(guān)的表單數(shù)據(jù)。

  8. DynamicBpmnService:使用該服務(wù),可以不需要重新部署流程模型,就可以實現(xiàn)對流程模型的部分修改。

2.如何理解服務(wù)組件之間的關(guān)系

如何理解服務(wù)組件之間的關(guān)系,必須先從工作流的使用角度來理解。

以報銷流程為例:

工作流并不是憑空出現(xiàn)的,并不是員工提起報銷請求,系統(tǒng)就毫無根據(jù)的生成了工作流。而是需要管理員來規(guī)定報銷這個工作流中各個環(huán)節(jié),各個條件。那么管理員如何來使用activiti來定義一個新的工作流呢?RepositoryService為我們提供了與此相關(guān)的一系列方法,可以讓我們能夠定義工作流并將工作流部署到服務(wù)器當(dāng)中去??梢詫epositoryService理解為創(chuàng)建java面向?qū)ο笏枷胫械念悺?/p>

當(dāng)有了一個流程的定義,員工如何去申請一個報銷流程呢,因為每一個員工情況都不一樣,他們都需要有個獨立的流程來解決各自的問題(類似于java中的對象)。RuntimeService為我們提供了相應(yīng)的方法,來根據(jù)一個流程定義去創(chuàng)建流程實例,并可以對流程實例進行一系列的操作。

此處還有一個task的概念,task可以理解為我們流程圖中的一個審批任務(wù)(節(jié)點),一個流程實例只要被創(chuàng)建了并且還沒有結(jié)束,就一個其中某一個節(jié)點上。而我們也可以使用RuntimeService來獲取我們流程當(dāng)前所處于task。而TaskService則可以對task進行完成、管理各種操作。

此外activiti還通過IdentityService提供給我們了統(tǒng)一管理提起流程、參與流程的所有用戶和用戶組的一系列方法,并允許通過taskService中的方法為task設(shè)定系統(tǒng)中的審批用戶或者用戶組。

HistoryService則是因為我們有時需要查詢已經(jīng)走完全部流程的流程實例,他給我們提供一系列操作歷史數(shù)據(jù)的方法。

ManagementService和DynamicBpmnService暫時用到的還比較少,以后再補充。//todo

3.如何創(chuàng)建服務(wù)組件

普通java項目中我們需要先聲明工作流引擎ProcessEngine ,然后根據(jù)工作流引擎來獲取各種服務(wù)組件。

ProcessEngine engine= ProcessEngines.getDefaultProcessEngine();
        //工作流定義相關(guān)服務(wù)
        RepositoryService rs=engine.getRepositoryService();
        //工作流實例相關(guān)服務(wù)
        RuntimeService runtimeService=engine.getRuntimeService();
        //任務(wù)相關(guān)服務(wù)服務(wù)
        TaskService taskService=engine.getTaskService();

        //將流程模板存儲到數(shù)據(jù)庫中
        rs.createDeployment().addClasspathResource("first.bpmn").deploy();

        //創(chuàng)建一個流程實例
        ProcessInstance processInstance=runtimeService.startProcessInstanceByKey("myProcess_1");

        //普通員工填寫完成請假任務(wù)  task即為當(dāng)前節(jié)點
        Task 
       task=taskService.createTaskQuery().processInstanceId(processInstance.getId()).singleResult();
        System.out.println("當(dāng)前流程節(jié)點:"+task.getName());
        taskService.complete(task.getId());

而spring項目中我們可以直接通過@Autowired注解的方式來獲取我們的服務(wù)組件,如下

    @Autowired
    private RuntimeService runtimeService;

    @Autowired
    private RepositoryService repositoryService;

    @Autowired
    private TaskService taskService;

    @Autowired
    private IdentityService identityService;

    @Autowired
    private HistoryService historyService;

關(guān)于Activiti中常用服務(wù)組件是什么就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學(xué)到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

網(wǎng)站題目:Activiti中常用服務(wù)組件是什么
URL地址:http://muchs.cn/article14/pgocde.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供手機網(wǎng)站建設(shè)、網(wǎng)站內(nèi)鏈企業(yè)建站、建站公司、移動網(wǎng)站建設(shè)做網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

小程序開發(fā)