项目实践工作流之Activiti学习(四)

2023-10-24 11:04:38 浏览数 (2)

2.1.3 BPMN

BPMN(Business Process Model And Notation)- 业务流程模型和符号 是由 BPMI(Business Process Management Initiative)开发的一套标准的业务流程建模符号,使用 BPMN 提供的符号可以创建业务流程。 2004 年 5 月发布了 BPMN1.0 规范.BPMI 于 2005 年 9 月并入 OMG(The Object Management Group 对象管理组织)组织。OMG 于 2011 年 1 月发布 BPMN2.0 的最终版本。

具体发展历史如下:

BPMN 是目前被各 BPM 厂商广泛接受的 BPM 标准。Activiti 就是使用 BPMN 2.0 进行流程建模、流程执行管理,它包括很多的建模符号,比如:

Event 用一个圆圈表示,它是流程中运行过程中发生的事情。

活动用圆角矩形表示,一个流程由一个活动或多个活动组成

一个 bpmn 图形的例子:

首先当事人发起一个请假单;

其次他所在部门的经理对请假单进行审核;

然后人事经理进行复核并进行备案;

最后请假流程结束。

Bpmn 图形其实是通过 xml 表示业务流程,上边的.bpmn 文件使用文本编辑器打开:

代码语言:javascript复制
<?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="创建请假单"></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>

0 人点赞