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

全國咨詢/投訴熱線:400-618-4000

Activiti是什么?如何使用?

更新時間:2021年05月11日14時56分 來源:傳智教育 瀏覽次數:

Activiti介紹


Alfresco軟件在2010年5月17日宣布Activiti業(yè)務流程管理(BPM)開源項目的正式啟動,其首席架構師由業(yè)務流程管理BPM的專家 Tom Baeyens擔任,Tom Baeyens就是原來jbpm的架構師,而jbpm是一個非常有名的工作流引擎,當然activiti也是一個工作流引擎。

Activiti是一個工作流引擎, activiti可以將業(yè)務系統(tǒng)中復雜的業(yè)務流程抽取出來,使用專門的建模語言BPMN2.0進行定義,業(yè)務流程按照預先定義的流程進行執(zhí)行,實現了系統(tǒng)的流程由activiti進行管理,減少業(yè)務系統(tǒng)由于流程變更進行系統(tǒng)升級改造的工作量,從而提高系統(tǒng)的健壯性,同時也減少了系統(tǒng)開發(fā)維護成本。

官方網站:https://www.activiti.org/

Activiti

經歷的版本:

Activiti版本

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


2.1.1 BPM

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


2.1.2 BPM軟件

BPM軟件就是根據企業(yè)中業(yè)務環(huán)境的變化,推進人與人之間、人與系統(tǒng)之間以及系統(tǒng)與系統(tǒng)之間的整合及調整的經營方法與解決方案的IT工具。

通過BPM軟件對企業(yè)內部及外部的業(yè)務流程的整個生命周期進行建模、自動化、管理監(jiān)控和優(yōu)化,使企業(yè)成本降低,利潤得以大幅提升。

BPM軟件在企業(yè)中應用領域廣泛,凡是有業(yè)務流程的地方都可以BPM軟件進行管理,比如企業(yè)人事辦公管理、采購流程管理、公文審批流程管理、財務管理等。


2.1.3 BPMN

BPMN(Business Process Model AndNotation)- 業(yè)務流程模型和符號 是由BPMI(BusinessProcess Management Initiative)開發(fā)的一套標準的業(yè)務流程建模符號,使用BPMN提供的符號可以創(chuàng)建業(yè)務流程。

2004年5月發(fā)布了BPMN1.0規(guī)范.BPMI于2005年9月并入OMG(The Object Management Group對象管理組織)組織。OMG于2011年1月發(fā)布BPMN2.0的最終版本。

具體發(fā)展歷史如下:

BMPN發(fā)展歷史

BPMN 是目前被各 BPM 廠商廣泛接受的 BPM 標準。Activiti 就是使用 BPMN 2.0 進行流程建模、流程執(zhí)行管理,它包括很多的建模符號,比如:

Event

用一個圓圈表示,它是流程中運行過程中發(fā)生的事情。

Event

活動用圓角矩形表示,一個流程由一個活動或多個活動組成

BMPN圖形

Bpmn圖形其實是通過xml表示業(yè)務流程,上邊的.bpmn文件使用文本編輯器打開:

<?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)建請假單"></userTask>
    <sequenceFlow id="flow1" sourceRef="startevent1" targetRef="usertask1"></sequenceFlow>
    <userTask id="usertask2" name="部門經理審核"></userTask>
    <sequenceFlow id="flow2" sourceRef="usertask1" targetRef="usertask2"></sequenceFlow>
    <userTask id="usertask3" name="人事復核"></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是一個工作流引擎(其實就是一堆jar包API),業(yè)務系統(tǒng)訪問(操作)activiti的接口,就可以方便的操作流程相關數據,這樣就可以把工作流環(huán)境與業(yè)務系統(tǒng)的環(huán)境集成在一起。


流程定義

使用activiti流程建模工具(activity-designer)定義業(yè)務流程(.bpmn文件) 。

.bpmn文件就是業(yè)務流程定義文件,通過xml定義業(yè)務流程。


流程定義部署

activiti部署業(yè)務流程定義(.bpmn文件)。

使用activiti提供的api把流程定義內容存儲起來,在Activiti執(zhí)行過程中可以查詢定義的內容

Activiti執(zhí)行把流程定義內容存儲在數據庫中


啟動一個流程實例

流程實例也叫:ProcessInstance

啟動一個流程實例表示開始一次業(yè)務流程的運行。

在員工請假流程定義部署完成后,如果張三要請假就可以啟動一個流程實例,如果李四要請假也啟動一個流程實例,兩個流程的執(zhí)行互相不影響。


用戶查詢待辦任務(Task)

因為現在系統(tǒng)的業(yè)務流程已經交給activiti管理,通過activiti就可以查詢當前流程執(zhí)行到哪了,當前用戶需要辦理什么任務了,這些activiti幫我們管理了,而不需要開發(fā)人員自己編寫在sql語句查詢。


用戶辦理任務

用戶查詢待辦任務后,就可以辦理某個任務,如果這個任務辦理完成還需要其它用戶辦理,比如采購單創(chuàng)建后由部門經理審核,這個過程也是由activiti幫我們完成了。


流程結束

當任務辦理完成沒有下一個任務結點了,這個流程實例就完成了。

好口碑IT培訓



猜你喜歡:

Activiti7教程:最新工作流引擎Activiti7基礎與進階

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

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

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

傳智教育Java培訓課程

0 分享到:
和我們在線交談!