背景
Activiti作為一個(gè)優(yōu)秀的且開(kāi)源的工作流工具,受到很多開(kāi)發(fā)人員的追捧,特別是負(fù)責(zé)公司OA系統(tǒng)的部門,都愿意花一些時(shí)間來(lái)學(xué)習(xí)與研究Activiti,在對(duì)Activiti有一定了解之后,還能基于它做一些特殊業(yè)務(wù)的定制,極大地降低開(kāi)發(fā)成本。但令人吃驚的是,當(dāng)你在網(wǎng)上搜索Activiti使用指南時(shí),你會(huì)發(fā)現(xiàn),官網(wǎng)只有極少的材料介紹Activiti 7.0 核心API的使用,當(dāng)你繼續(xù)在網(wǎng)上“追查”,你會(huì)發(fā)現(xiàn)Activiti 6.0有更多的指導(dǎo)文章,但畢竟他們都是站在當(dāng)時(shí)的技術(shù)框架上給出的代碼示例,多多少少有些晦澀。結(jié)合個(gè)人的探索過(guò)程,寫(xiě)下此文章,希望對(duì)想快速使用Activiti的小伙伴一些幫助。
優(yōu)質(zhì)參考資料
官方開(kāi)發(fā)指導(dǎo)文檔:https://activiti.gitbook.io/activiti-7-developers-guide/getting-started/getting-started-activiti-core
Activiti 6.0版本的文檔:https://www.activiti.org/userguide/index.html
《Activiti實(shí)戰(zhàn)》的作者博客:http://www.kafeitu.me/activiti-in-action.html
Kafeitu的demo:https://github.com/henryyan/kft-activiti-demo
Activiti article:https://github.com/Activiti/Activiti/wiki/Articles-and-Blogs-on-Activiti
Activiti 5.16中文手冊(cè):http://www.mossle.com/docs/activiti/index.html#bpmnConstructs
Actviti 6.0與Activiti Explorer:https://docs.alfresco.com/6.0/concepts/dev-api-by-language-alf-rest-install-api-explorer.html
概念簡(jiǎn)述
BPMN2
BPMN是BPM及workflow的建模語(yǔ)言標(biāo)準(zhǔn)之一。
OMG于2011年推出BPMN2.0標(biāo)準(zhǔn),13年12月推出BPMN2.0.2標(biāo)準(zhǔn)。
官方Spec: https://www.omg.org/spec/BPMN/2.0/PDF
概念對(duì)應(yīng)
常用表達(dá) | BPMN2 | Activiti |
---|---|---|
審核流程 | Process | ProcessInstance/Execution/Model |
審核環(huán)節(jié) | Activity | 抽象類Activity |
任務(wù) | Task | Task |
子流程 | Sub-Process | SubProcess |
審核流轉(zhuǎn) | SequenceFlow | SequenceFlow |
ProcessEngine
ProcessEngine class is your central access point to all the engine functionality of Activiti.
基于這個(gè)引擎,Activiti提供了一系列的Services,這些Services方便了用戶對(duì)引擎的使用。
ProcessEngineConfiguration
ProcessEngineConfiguration是ProcessEngine的配置類,Activiti提供了以下類供用戶選擇:
org.activiti.engine.impl.cfg.StandaloneProcessEngineConfiguration:此流程引擎可獨(dú)立使用,Activiti負(fù)責(zé)事務(wù)處理,僅在引擎啟動(dòng)時(shí)檢查數(shù)據(jù)庫(kù)(如果沒(méi)有Activiti依賴或依賴版本不正確,則會(huì)引發(fā)異常);
org.activiti.engine.impl.cfg.StandaloneInMemProcessEngineConfiguration:這是用于單元測(cè)試的便捷類。 Activiti負(fù)責(zé)事務(wù)處理。默認(rèn)情況下使用H2內(nèi)存數(shù)據(jù)庫(kù)。引擎啟動(dòng)與關(guān)閉時(shí),會(huì)分別創(chuàng)建與刪除數(shù)據(jù)庫(kù)。使用此功能時(shí),可能不需要其他配置(使用作業(yè)執(zhí)行程序或郵件功能時(shí)除外);
org.activiti.spring.SpringProcessEngineConfiguration:用于Spring環(huán)境;
org.activiti.engine.impl.cfg.JtaProcessEngineConfiguration:當(dāng)引擎以JTA事務(wù)在獨(dú)立模式下運(yùn)行時(shí)使用。