教育行業(yè)A股IPO第一股(股票代碼 003032)

全國(guó)咨詢(xún)/投訴熱線(xiàn):400-618-4000

Activiti是什么?如何使用?

更新時(shí)間:2021年05月11日14時(shí)56分 來(lái)源:傳智教育 瀏覽次數(shù):

Activiti介紹


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/

Activiti

經(jīng)歷的版本:

Activiti版本

目前最新版本:Activiti7.0.0.Beta


2.1.1 BPM

BPM(Business Process Management),即業(yè)務(wù)流程管理,是一種規(guī)范化的構(gòu)造端到端的業(yè)務(wù)流程,以持續(xù)的提高組織業(yè)務(wù)效率。常見(jiàn)商業(yè)管理教育如EMBA、MBA等均將BPM包含在內(nèi)。


2.1.2 BPM軟件

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ù)管理等。


2.1.3 BPMN

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ā)展歷史如下:

BMPN發(fā)展歷史

BPMN 是目前被各 BPM 廠(chǎng)商廣泛接受的 BPM 標(biāo)準(zhǔn)。Activiti 就是使用 BPMN 2.0 進(jìn)行流程建模、流程執(zhí)行管理,它包括很多的建模符號(hào),比如:

Event

用一個(gè)圓圈表示,它是流程中運(yùn)行過(guò)程中發(fā)生的事情。

Event

活動(dòng)用圓角矩形表示,一個(gè)流程由一個(gè)活動(dòng)或多個(gè)活動(dòng)組成

BMPN圖形

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>

?


2.2 使用步驟

部署activiti

Activiti是一個(gè)工作流引擎(其實(shí)就是一堆jar包API),業(yè)務(wù)系統(tǒng)訪(fǎ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í)例就完成了。

好口碑IT培訓(xùn)



猜你喜歡:

Activiti7教程:最新工作流引擎Activiti7基礎(chǔ)與進(jìn)階

Redis有什么優(yōu)缺點(diǎn)?

什么是Mybatis?Mybaits有哪些優(yōu)點(diǎn)?

Java JDK是什么?JDK安裝目錄介紹

傳智教育Java培訓(xùn)課程

0 分享到:
和我們?cè)诰€(xiàn)交談!