博客專欄

EEPW首頁(yè) > 博客 > 扣丁學(xué)堂Java培訓(xùn)之Activiti流程部署詳解

扣丁學(xué)堂Java培訓(xùn)之Activiti流程部署詳解

發(fā)布人:扣丁學(xué)堂1 時(shí)間:2021-01-08 來源:工程師 發(fā)布文章

本章我們將學(xué)習(xí)基本的BPMN知識(shí)以及Activiti的流程部署。

BPMN的介紹

Activiti項(xiàng)目是一項(xiàng)新的基于Apache許可的開源BPM平臺(tái),從基礎(chǔ)開始構(gòu)建,旨在提供支持新的BPMN2.0標(biāo)準(zhǔn),包括支持對(duì)象管理組(OMG),面對(duì)新技術(shù)的機(jī)遇,諸如互操作性和云架構(gòu),提供技術(shù)實(shí)現(xiàn)。


那什么是BPM和BPMN呢?

BPM:即業(yè)務(wù)流程管理,是一種以規(guī)范化的構(gòu)造端到端的卓越業(yè)務(wù)流程為中心,以持續(xù)的提高組織業(yè)務(wù)績(jī)效為目的的系統(tǒng)化方法,常見商業(yè)管理教育如EMBA、MBA等均將BPM包含在內(nèi)。

BPMN:業(yè)務(wù)流程建模與標(biāo)注,包括這些圖元如何組合成一個(gè)業(yè)務(wù)流程圖(BusinessProcessDiagram)。業(yè)務(wù)流程示意圖是由一系列的元素符號(hào)構(gòu)成。作為BPMN的基礎(chǔ),這些符號(hào)將業(yè)務(wù)流程建模簡(jiǎn)單化、圖形化,將復(fù)雜的建模過程視覺化,讓閱讀者對(duì)BPMN有一個(gè)更加清晰明了的了解。既然BPMN符號(hào)如此重要,那在繪制BPMN示意圖之前,便必須要對(duì)BPMN符號(hào)的名稱、意義、使用方法等有一個(gè)全面的理解。

BPMN的四種基本元素

l流對(duì)象(FlowObjects):包括事件、活動(dòng)、網(wǎng)關(guān),是BPMN的核心元素;

事件Event用一個(gè)圓圈表示,它是流程中運(yùn)行過程中發(fā)生的事情。事件的發(fā)生會(huì)影響到流程的流轉(zhuǎn).事件包含Start\Intermediate\End三種類型.如下圖:


活動(dòng)Activities用圓角矩形表示,一個(gè)活動(dòng)多個(gè)活動(dòng)組成,活動(dòng)的類型分為Task和Sub-Process。如下下圖:


網(wǎng)關(guān)Gateway用菱形表示,用于控制流程的分支和聚合.具體符號(hào)表示如下:


l連接對(duì)象(ConnectingObjects):包括順序流、消息流、關(guān)聯(lián);

l泳道(Swimlanes):包括池和道兩種類型;

l人工信息(Artifacts):包括數(shù)據(jù)對(duì)象、組、注釋。

Activiti的流程部署

下面介紹在IDEA中如何部署一個(gè)簡(jiǎn)單的考勤補(bǔ)簽流程

1、首先在resource目錄下新建bpmn目錄

2、點(diǎn)擊bpmn目錄右鍵——>new——>bpmn文件,輸入bpmn文件名后會(huì)出現(xiàn)如下界面:


該界面的左邊是屬性面板,可以查看和修改各個(gè)bpmn元素的屬性值,中間是bpmn流程圖,最右側(cè)是流程圖中的各種元素。

3、繪制流程圖1)拖放一個(gè)StartEvent(開始事件)和一個(gè)EndEvent(結(jié)束事件)到流程圖中,分別將名稱設(shè)置為“補(bǔ)簽開始”和“補(bǔ)簽結(jié)束”。2)拖放兩個(gè)UserTask,分別將名稱設(shè)置為技術(shù)經(jīng)理審批和人事專員確認(rèn)3)將圖形連接起來,如上圖,提示:將鼠標(biāo)移動(dòng)到圖形中心,圖標(biāo)形狀會(huì)發(fā)生變化,然后拖動(dòng)到下一個(gè)圖形就完成了連接。

4、生成流程圖png圖片

部署一個(gè)Activiti流程需要bpmn文件和流程圖圖片(png格式),可以復(fù)制bpmn文件然后將后綴名改為xml,在xml文件上點(diǎn)擊右鍵——>Diagrams——>ShowBPMN2.0Designer會(huì)出現(xiàn)如下界面:


,選擇resources下的bpmn目錄,就會(huì)保存為png圖片。

5、部署流程

上章介紹過Activiti的核心引擎ProcessEngine,所有的服務(wù)都需要通過流程引擎來獲得。

部署流程需要使用RepositoryService,倉(cāng)庫(kù)服務(wù)是存儲(chǔ)相關(guān)的服務(wù),一般用來部署流程文件,獲取流程文件,查詢流程定義信息等操作,是引擎中的一個(gè)重要的服務(wù)。獲得方法:

RepositoryServicerepositoryService

=engine.getRepositoryService();

部署流程:


  @Test
  publicvoiddeployAddSigninProcess(){
  //獲得配置對(duì)象
  ProcessEngineConfigurationconfig=
  ProcessEngineConfiguration.createProcessEngineConfigurationFromResourceDefault();
  //創(chuàng)建核心引擎
  ProcessEngineprocessEngine=config.buildProcessEngine();
  //獲得倉(cāng)庫(kù)服務(wù)
  repositoryService=processEngine.getRepositoryService();
  //部署流程,支持鏈?zhǔn)骄幊?
  repositoryService
  .createDeployment()//創(chuàng)建部署對(duì)象
  .key("addsigninProcess")//設(shè)置部署流程鍵值
  .addClasspathResource("bpmn/proc_addsignin.bpmn")//添加bpmn文件
  .addClasspathResource("bpmn/proc_addsignin.png")//添加png文件
  .name("補(bǔ)簽流程")//設(shè)置流程名稱
  .deploy();//部署
  }


執(zhí)行完上面的代碼后會(huì)向下面三張表中插入記錄:

act_re_deployment存放流程定義的顯示名和部署時(shí)間,每部署一次增加一條記錄


act_re_procdef存放流程定義的屬性信息,部署流程定義都會(huì)在這張表中增加一條記錄。


act_ge_bytearray存儲(chǔ)流程定義相關(guān)的部署信息。即流程定義文檔的存放地。


這樣一個(gè)補(bǔ)簽的流程就完成了部署,后面我們可以按照部署的流程進(jìn)行層層審批直到完成整個(gè)流程。


以上就是關(guān)于扣丁學(xué)堂Java培訓(xùn)之Activiti流程部署的詳細(xì)介紹,最后想要了解更多關(guān)于Java開發(fā)問題的小伙伴可以登錄扣丁學(xué)堂官網(wǎng)咨詢??鄱W(xué)堂是專業(yè)的Java培訓(xùn)機(jī)構(gòu),不僅有專業(yè)的老師和與時(shí)俱進(jìn)的課程體系,還有大量的Java視頻教程供學(xué)員觀看學(xué)習(xí),想要學(xué)好Java的小伙伴抓緊時(shí)間行動(dòng)吧??鄱W(xué)堂java技術(shù)交流群:487098661。微信號(hào):codingbb

*博客內(nèi)容為網(wǎng)友個(gè)人發(fā)布,僅代表博主個(gè)人觀點(diǎn),如有侵權(quán)請(qǐng)聯(lián)系工作人員刪除。

DIY機(jī)械鍵盤相關(guān)社區(qū):機(jī)械鍵盤DIY




關(guān)鍵詞:

相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉