更新時(shí)間:2021-05-11 來(lái)源:黑馬程序員 瀏覽量:
Alfresco軟件在2010年5月17日宣布Activiti業(yè)務(wù)流程管理(BPM)開(kāi)源項(xiàng)目的正式啟動(dòng),其首席架構(gòu)師由業(yè)務(wù)流程管理BPM的專(zhuān)家 Tom Baeyens擔(dān)任,Tom Baeyens就是原來(lái)jbpm的架構(gòu)師,而jbpm是一個(gè)非常有名的工作流引擎,當(dāng)然activiti也是一個(gè)工作流引擎。
Activiti是一個(gè)工作流引擎, activiti可以將業(yè)務(wù)系統(tǒng)中復(fù)雜的業(yè)務(wù)流程抽取出來(lái),使用專(zhuān)門(mén)的建模語(yǔ)言BPMN2.0進(jìn)行定義,業(yè)務(wù)流程按照預(yù)先定義的流程進(jìn)行執(zhí)行,實(shí)現(xiàn)了系統(tǒng)的流程由activiti進(jìn)行管理,減少業(yè)務(wù)系統(tǒng)由于流程變更進(jìn)行系統(tǒng)升級(jí)改造的工作量,從而提高系統(tǒng)的健壯性,同時(shí)也減少了系統(tǒng)開(kāi)發(fā)維護(hù)成本。
官方網(wǎng)站:https://www.activiti.org/
經(jīng)歷的版本:
目前最新版本:Activiti7.0.0.Beta
BPM(Business Process Management),即業(yè)務(wù)流程管理,是一種規(guī)范化的構(gòu)造端到端的業(yè)務(wù)流程,以持續(xù)的提高組織業(yè)務(wù)效率。常見(jiàn)商業(yè)管理教育如EMBA、MBA等均將BPM包含在內(nèi)。
BPM軟件就是根據(jù)企業(yè)中業(yè)務(wù)環(huán)境的變化,推進(jìn)人與人之間、人與系統(tǒng)之間以及系統(tǒng)與系統(tǒng)之間的整合及調(diào)整的經(jīng)營(yíng)方法與解決方案的IT工具。
通過(guò)BPM軟件對(duì)企業(yè)內(nèi)部及外部的業(yè)務(wù)流程的整個(gè)生命周期進(jìn)行建模、自動(dòng)化、管理監(jiān)控和優(yōu)化,使企業(yè)成本降低,利潤(rùn)得以大幅提升。
BPM軟件在企業(yè)中應(yīng)用領(lǐng)域廣泛,凡是有業(yè)務(wù)流程的地方都可以BPM軟件進(jìn)行管理,比如企業(yè)人事辦公管理、采購(gòu)流程管理、公文審批流程管理、財(cái)務(wù)管理等。
BPMN(Business Process Model AndNotation)- 業(yè)務(wù)流程模型和符號(hào) 是由BPMI(BusinessProcess Management Initiative)開(kāi)發(fā)的一套標(biāo)準(zhǔn)的業(yè)務(wù)流程建模符號(hào),使用BPMN提供的符號(hào)可以創(chuàng)建業(yè)務(wù)流程。
2004年5月發(fā)布了BPMN1.0規(guī)范.BPMI于2005年9月并入OMG(The Object Management Group對(duì)象管理組織)組織。OMG于2011年1月發(fā)布BPMN2.0的最終版本。
具體發(fā)展歷史如下:
BPMN 是目前被各 BPM 廠商廣泛接受的 BPM 標(biāo)準(zhǔn)。Activiti 就是使用 BPMN 2.0 進(jìn)行流程建模、流程執(zhí)行管理,它包括很多的建模符號(hào),比如:
Event
用一個(gè)圓圈表示,它是流程中運(yùn)行過(guò)程中發(fā)生的事情。
活動(dòng)用圓角矩形表示,一個(gè)流程由一個(gè)活動(dòng)或多個(gè)活動(dòng)組成
Bpmn圖形其實(shí)是通過(guò)xml表示業(yè)務(wù)流程,上邊的.bpmn文件使用文本編輯器打開(kāi):
<?xml version="1.0" encoding="UTF-8"?> <definitions xmlns="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:activiti="http://activiti.org/bpmn" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:omgdc="http://www.omg.org/spec/DD/20100524/DC" xmlns:omgdi="http://www.omg.org/spec/DD/20100524/DI" typeLanguage="http://www.w3.org/2001/XMLSchema" expressionLanguage="http://www.w3.org/1999/XPath" targetNamespace="http://www.activiti.org/test"> <process id="myProcess" name="My process" isExecutable="true"> <startEvent id="startevent1" name="Start"></startEvent> <userTask id="usertask1" name="創(chuàng)建請(qǐng)假單"></userTask> <sequenceFlow id="flow1" sourceRef="startevent1" targetRef="usertask1"></sequenceFlow> <userTask id="usertask2" name="部門(mén)經(jīng)理審核"></userTask> <sequenceFlow id="flow2" sourceRef="usertask1" targetRef="usertask2"></sequenceFlow> <userTask id="usertask3" name="人事復(fù)核"></userTask> <sequenceFlow id="flow3" sourceRef="usertask2" targetRef="usertask3"></sequenceFlow> <endEvent id="endevent1" name="End"></endEvent> <sequenceFlow id="flow4" sourceRef="usertask3" targetRef="endevent1"></sequenceFlow> </process> <bpmndi:BPMNDiagram id="BPMNDiagram_myProcess"> <bpmndi:BPMNPlane bpmnElement="myProcess" id="BPMNPlane_myProcess"> <bpmndi:BPMNShape bpmnElement="startevent1" id="BPMNShape_startevent1"> <omgdc:Bounds height="35.0" width="35.0" x="130.0" y="160.0"></omgdc:Bounds> </bpmndi:BPMNShape> <bpmndi:BPMNShape bpmnElement="usertask1" id="BPMNShape_usertask1"> <omgdc:Bounds height="55.0" width="105.0" x="210.0" y="150.0"></omgdc:Bounds> </bpmndi:BPMNShape> <bpmndi:BPMNShape bpmnElement="usertask2" id="BPMNShape_usertask2"> <omgdc:Bounds height="55.0" width="105.0" x="360.0" y="150.0"></omgdc:Bounds> </bpmndi:BPMNShape> <bpmndi:BPMNShape bpmnElement="usertask3" id="BPMNShape_usertask3"> <omgdc:Bounds height="55.0" width="105.0" x="510.0" y="150.0"></omgdc:Bounds> </bpmndi:BPMNShape> <bpmndi:BPMNShape bpmnElement="endevent1" id="BPMNShape_endevent1"> <omgdc:Bounds height="35.0" width="35.0" x="660.0" y="160.0"></omgdc:Bounds> </bpmndi:BPMNShape> <bpmndi:BPMNEdge bpmnElement="flow1" id="BPMNEdge_flow1"> <omgdi:waypoint x="165.0" y="177.0"></omgdi:waypoint> <omgdi:waypoint x="210.0" y="177.0"></omgdi:waypoint> </bpmndi:BPMNEdge> <bpmndi:BPMNEdge bpmnElement="flow2" id="BPMNEdge_flow2"> <omgdi:waypoint x="315.0" y="177.0"></omgdi:waypoint> <omgdi:waypoint x="360.0" y="177.0"></omgdi:waypoint> </bpmndi:BPMNEdge> <bpmndi:BPMNEdge bpmnElement="flow3" id="BPMNEdge_flow3"> <omgdi:waypoint x="465.0" y="177.0"></omgdi:waypoint> <omgdi:waypoint x="510.0" y="177.0"></omgdi:waypoint> </bpmndi:BPMNEdge> <bpmndi:BPMNEdge bpmnElement="flow4" id="BPMNEdge_flow4"> <omgdi:waypoint x="615.0" y="177.0"></omgdi:waypoint> <omgdi:waypoint x="660.0" y="177.0"></omgdi:waypoint> </bpmndi:BPMNEdge> </bpmndi:BPMNPlane> </bpmndi:BPMNDiagram> </definitions>
部署activiti
Activiti是一個(gè)工作流引擎(其實(shí)就是一堆jar包API),業(yè)務(wù)系統(tǒng)訪問(wèn)(操作)activiti的接口,就可以方便的操作流程相關(guān)數(shù)據(jù),這樣就可以把工作流環(huán)境與業(yè)務(wù)系統(tǒng)的環(huán)境集成在一起。
流程定義
使用activiti流程建模工具(activity-designer)定義業(yè)務(wù)流程(.bpmn文件) 。
.bpmn文件就是業(yè)務(wù)流程定義文件,通過(guò)xml定義業(yè)務(wù)流程。
流程定義部署
activiti部署業(yè)務(wù)流程定義(.bpmn文件)。
使用activiti提供的api把流程定義內(nèi)容存儲(chǔ)起來(lái),在Activiti執(zhí)行過(guò)程中可以查詢(xún)定義的內(nèi)容
Activiti執(zhí)行把流程定義內(nèi)容存儲(chǔ)在數(shù)據(jù)庫(kù)中
啟動(dòng)一個(gè)流程實(shí)例
流程實(shí)例也叫:ProcessInstance
啟動(dòng)一個(gè)流程實(shí)例表示開(kāi)始一次業(yè)務(wù)流程的運(yùn)行。
在員工請(qǐng)假流程定義部署完成后,如果張三要請(qǐng)假就可以啟動(dòng)一個(gè)流程實(shí)例,如果李四要請(qǐng)假也啟動(dòng)一個(gè)流程實(shí)例,兩個(gè)流程的執(zhí)行互相不影響。
用戶(hù)查詢(xún)待辦任務(wù)(Task)
因?yàn)楝F(xiàn)在系統(tǒng)的業(yè)務(wù)流程已經(jīng)交給activiti管理,通過(guò)activiti就可以查詢(xún)當(dāng)前流程執(zhí)行到哪了,當(dāng)前用戶(hù)需要辦理什么任務(wù)了,這些activiti幫我們管理了,而不需要開(kāi)發(fā)人員自己編寫(xiě)在sql語(yǔ)句查詢(xún)。
用戶(hù)辦理任務(wù)
用戶(hù)查詢(xún)待辦任務(wù)后,就可以辦理某個(gè)任務(wù),如果這個(gè)任務(wù)辦理完成還需要其它用戶(hù)辦理,比如采購(gòu)單創(chuàng)建后由部門(mén)經(jīng)理審核,這個(gè)過(guò)程也是由activiti幫我們完成了。
流程結(jié)束
當(dāng)任務(wù)辦理完成沒(méi)有下一個(gè)任務(wù)結(jié)點(diǎn)了,這個(gè)流程實(shí)例就完成了。
猜你喜歡: