BPMN2.0规范部分总结

BPMN2.0规范部分总结

2023年7月24日发(作者:)

BPMN2.0规范部分总结基本概念:对业务流程管理(Business process management)进⾏建模称为业务流程建模(Business Process Model),业务流程建模语⾔BPMN(Business Process Model Notation)是其⼀种建模语⾔,⽽BPMN2.0规范(Business Process Model and Notation 2.0)是基于BPMN的⼀套标准,对BPMN进⾏了重新的定义。BPMN的价值:BPMN的开发旨在减少众多已存在的业务建模⼯具和流程记录⼯具之间的断层。BPMN2-Conformance ⼀致性:Process Modeling Conformance 流程模型⼀致性Process Execution conformance 流程执⾏⼀致性BPEL Process Execution Conformance BPEL 流程执⾏⼀致性Choreography Modeling Conformance 编排模型⼀致性BPMN2-Element 元素:Flow Objects 流对象(三个核⼼元素)1) Events 事件(⽤于对流程⽣命周期中发⽣的事件进⾏建模。)Event ⽤⼀个圆圈表⽰,它是流程中运⾏过程中发⽣的事情。事件的发⽣会影响到流程的流转.事件包含StartIntermediateEnd三种类型。

2) Activities 活动(任务表⽰流程中具体要做的事情,通常⼀个任务表⽰⼯作需要被外部实体完成,⽐如⼈⼯任务和⾃动服务。)活动⽤圆⾓矩形表⽰,⼀个活动多个活动组成,活动的类型分为Task和Sub-Process。

3) Gateways ⽹关(⽤来控制流程的流向)⽹关⽤菱形表⽰,⽤于控制流程的分⽀和聚合。 现实业务所有的业务环节都离不开Activities、Gateways和Events,⽆论是简单的条件审批还是复杂的⽗⼦流程循环处理,在⼀个流程定义描述中,所有的业务环节都离不开Task、Sequence Flow、Exclusive Gateway、Inclusive Gateway(如图1中右侧绿⾊标记所⽰元素),其中Task是⼀个极具威⼒的元素,它能描述业务过程中所有能发⽣⼯时的⾏为,它包括User Task、Manual Task、Service Task、Script Task等,可以被⽤来描述⼈机交互任务、线下操作任务、服务调⽤、脚本计算任务等常规功能。User Task:⽣成⼈机交互任务,主要被⽤来描述需要⼈为在软件系统中进⾏诸如任务明细查阅、填写审批意见等业务⾏为的操作,流程引擎流转到此类节点时,系统会⾃动⽣成被动触发任务,须⼈⼯响应后才能继续向下流转。常⽤于审批任务的定义。Manual Task:线下⼈为操作任务,常⽤于为了满⾜流程图对实际业务定义的完整性⽽进⾏的与流程驱动⽆关的线下任务,即此类任务不参与实际⼯作流流转。常⽤于诸如物流系统中的装货、运输等任务的描述。Service Task:服务任务,通常⼯作流流转过程中会涉及到与⾃⾝系统服务API调⽤或与外部服务相互调⽤的情况,此类任务往往由⼀个具有特定业务服务功能的Java类承担,与UserTask不同,流程引擎流经此节点会⾃动调⽤Java类中定义的⽅法,⽅法执⾏完毕⾃动向下⼀流程节点流转。另外,此类任务还可充当“条件路由”的功能对流程流转可选分⽀进⾏⾃动判断。常⽤于业务逻辑API的调⽤。Script Task:脚本任务,在流程流转期间以“脚本”的声明或语法参与流程变量的计算,⽬前⽀持的脚本类型有三种:juel(即JSP EL)、groovy和javascript。在Activiti5.9中新增了Shell Task,可以处理系统外部定义的Shell脚本⽂件,也与Script Task有类似的功能。常⽤于流程变量的处理。2. Data 数据1) Data Objects 数据对象2) Data Inputs 数据输⼊3) Data OutPuts 数据输出4) Data Stores 数据存储3. Connecting Objects 连接对象1) Sequence Flows 序列流Sequence Flows ⽤实线实⼼箭头表⽰,代表流程中将被执⾏的活动的执⾏顺序。

2) Message Flows 消息流Message Flows ⽤虚线空⼼箭头表⽰,第阿宝2个分开的流程参与者直接发送或者接收到的消息流.

3) Associations 结合关系Associations ⽤点状虚线表⽰,⽤于显⽰活动的输⼊输出.

4) Data Associations 数据结合关系4. Swimlanes 泳道1) Pools 池池描述流程中的⼀个参与者。可以看做是将⼀系列活动区别于其他池的⼀个图形容器,⼀般⽤于B2B的上下⽂中

2) Lanes 道道就是在池⾥⾯再细分,可以是垂直的也可以是⽔平的。道也是⽤于组织和分类活动。5. Artifacts ⼯件1) Group 组

2) Text Annotation ⽂本注释

BPMN2-Diagram Types 图类型:Private Processes 私有流程Public Processes 共有流程Choreographies Processes 组合流程什么是⼯作流引擎:⼯作流引擎是⼀个⽤于管理和调度流程的应⽤程序,可以集成并作为程序框架使⽤,包括流程定义的存储,流程的节点与流程条件判断和调度、流向管理、流程实例管理等功能。⼯作流引擎与BPMN有什么关系:通过BPMN(业务流程建模语⾔)来进⾏BPM(业务流程建模)得到的结果就是业务流程的定义,它规定了业务的流转过程由谁参与等等。⽽协调并执⾏这个流程,记录流程的执⾏过程和结果就是⼯作流引擎的职责范围了。⼯作流引擎:Activiti:

BPMN2.0的基本元素:顺序流(sequence flow)顺序流是流程中两个元素间的连接器。顺序流就是事件,活动和⽹关之间的连线,显⽰为⼀条实线带有箭头,在BPMN图形中每个顺序流都有⼀个源头和⼀个⽬标引⽤,包含了活动,事件或⽹关的id。在流程执⾏过程中,⼀个元素被访问后,会沿着其所有出⼝顺序流继续执⾏。这意味着BPMN 2.0的默认是并⾏执⾏的:两个出⼝顺序流就会创建两个独⽴的、并⾏的执⾏路径。

⽤从源元素指向⽬标元素的箭头表⽰。箭头总是指向⽬标元素。1) 条件顺序流在顺序流上可以定义条件(conditional sequence flow),默认⾏为是计算其每个出⼝顺序流上的条件。当条件计算为true时,选择该出⼝顺序流。条件顺序流的XML表⽰格式为含有conditionExpression(条件表达式)⼦元素的普通顺序流。

100 && < 250}]]> 2) 默认顺序流所有BPMN 2.0任务和⽹关都可以具有默认序列流。当且仅当其他条件顺序流都为false时,才选择执⾏默认顺序流。默认序列流的条件总是被忽略。

${conditionA}

${conditionB}

活动(任务)1) ⽤户任务⽤户任务(user task)⽤于对需要⼈⼯执⾏的任务进⾏建模。当流程执⾏到达⽤户任务时,会为指派⾄该任务的⽤户或组的任务列表创建⼀个新任务。

⽤户任务⽤左上⾓有⼀个⼩⽤户图标的标准任务(圆⾓矩形)表⽰。id是必须的,name是可选的,通过documentation元素对任务进⾏描述。任何bpmn2.0元素都可⽤documentation元素进⾏描述。 Schedule an engineering meeting for next week with the new hire. 到期⽇:可通过dueDate字段设置任务的到期时间。⽤户分配⼈⼯任务可分配给三种⼈:assignee(办理⼈、受让⼈),candidate(候选⼈),candidateGroup(候选⼈组)。assignee是任务的实际办理⼈,任务只能同时有⼀个办理⼈。任务可以有多个候选⼈,每个候选⼈都能看到该任务,候选⼈需要claim(拾取)任务成为assignee后,才能进⾏任务的办理,任务被拾取后其他候选⼈就看不到该任务了。候选⼈在拾取任务后可以unclaim,将任务归还,此时其他候选⼈可以看到并claim任务。不想单独指定多个候选⼈,可以指定⼀个候选⼈组,⼀般为⾓⾊ID。分配⽅式有三种:1)画图时写死。2)通过UEL表达式动态设置。3)通过TaskListener监听器指定。 2) 服务任务服务任务(service task)⽤于调⽤Java类。流程执⾏到服务任务时,会⾃动运⾏Java程序中的代码流程。

服务任务⽤左上⾓有⼀个⼩齿轮图标的圆⾓矩形表⽰。或使⽤表达式,结合spring的IOC机制,如下使⽤。3) 脚本任务⽤于执⾏脚本⽂件(如javascript)。

⽹关(节点)1) 排他⽹关排他⽹关(exclusive gateway)(也叫异或⽹关 XOR gateway,或者更专业的,基于数据的排他⽹关 exclusive data-based gateway),⽤于对流程中的决策建模。当执⾏到达这个⽹关时,会按照所有出⼝顺序流定义的顺序对它们进⾏计算。选择第⼀个条件计算为true的顺序流(当没有设置条件时,认为顺序流为true)继续流程。

排他⽹关⽤内部带有‘X’图标的标准⽹关(菱形)表⽰,‘X’图标代表异或的含义。请注意内部没有图标的⽹关默认为排他⽹关。BPMN 2.0规范不允许在同⼀个流程中混合使⽤有及没有X的菱形标志。

2) 并⾏⽹关⽹关也可以建模流程中的并⾏执⾏。在流程模型中引⼊并⾏的最简单的⽹关,就是并⾏⽹关(parallel gateway)。它可以将执⾏分⽀(fork)为多条路径,也可以合并(join)多条⼊⼝路径的执⾏。并⾏⽹关的功能取决于其⼊⼝与出⼝顺序流:分⽀:所有的出⼝顺序流都并⾏执⾏,为每⼀条顺序流创建⼀个并⾏执⾏。合并:所有到达并⾏⽹关的并⾏执⾏都会在⽹关处等待,直到每⼀条⼊⼝顺序流都到达了有个执⾏。然后流程经过该合并⽹关继续。如果并⾏⽹关同时具有多条⼊⼝与出⼝顺序流,可以同时具有分⽀与合并的⾏为。在这种情况下,⽹关⾸先合并所有⼊⼝顺序流,然后分裂为多条并⾏执⾏路径。与其他⽹关类型有⼀个重要区别:并⾏⽹关不计算条件。如果连接到并⾏⽹关的顺序流上定义了条件,会直接忽略该条件。

并⾏⽹关,⽤内部带有‘加号’图标的⽹关(菱形)表⽰,代表与(AND)的含义。3) 包含⽹关看作是排他⽹关和并⾏⽹关的组合,包含⽹关既能进⾏条件判断,⼜能并⾏执⾏多个分⽀。

4. 事件1) 启动&结束事件启动事件(start event)是流程的起点。启动事件的类型(流程在消息到达时启动,在指定的时间间隔后启动,等等),定义了流程如何启动,并显⽰为启动事件中的⼩图标。在XML中,类型由⼦元素声明来定义。启动事件可以有多种类型,如:空启动事件、定时器启动事件、消息启动事件、信号启动事件、错误启动事件等。

结束事件(end event)标志着流程或⼦流程中⼀个分⽀的结束。结束事件总是抛出型事件。这意味着当流程执⾏到达结束事件时,会抛出⼀个结果。结果的类型由事件内部的⿊⾊图标表⽰。结束事件同样有多种类型。

2) 边界事件边界事件(boundary event)是捕获型事件,依附在活动(activity)上。边界事件永远不会抛出。这意味着当活动运⾏时,事件将监听特定类型的触发器。当捕获到事件时,会终⽌活动,并沿该事件的出⼝顺序流继续。

错误边界事件⽤内部有⼀个错误图标的标准中间事件(两层圆圈)表⽰。错误图标是⽩⾊的,代表捕获的含义。3) 抛出&捕获事件捕获中间事件⽤内部有对应事件图标的标准中间事件(两层圆圈)表⽰。图标是⽩⾊的(未填充),代表捕获的含义。

抛出中间事件⽤内部有对应事件图标的标准中间事件(两层圆圈)表⽰。图标是⿊⾊的(已填充),代表抛出的含义。

5. ⼦流程与调⽤活动1) ⼦流程在BPM表中有⼦流程和引⽤活动的概念,如果⼀个流程在多个环节中使⽤,那么就可以考虑将该流程拆分为⼀个独⽴的⼦流程,这样其他的流程引⼊该流程就可以。⼦流程和引⽤活动的⽬的是简化繁琐重复流程的配置,也便于在流程图中对整个环节进⾏跟踪。⼦流程有两个主要的使⽤场景:⼦流程可以分层建模。很多建模⼯具都可以折叠⼦流程,隐藏⼦流程的所有细节,⽽只显⽰业务流程的⾼层端到端总览。⼦流程会创建新的事件范围。在⼦流程执⾏中抛出的事件可以通过⼦流程边界上的边界事件捕获,为该事件创建了限制在⼦流程内的范围。使⽤⼦流程也要注意以下⼏点:⼦流程只能有⼀个空启动事件,⽽不允许有其他类型的启动事件。请注意BPMN 2.0规范允许省略⼦流程的启动与结束事件。顺序流不能跨越⼦流程边界。

⼦流程表⽰为标准活动(圆⾓矩形)。若折叠了⼦流程,则只显⽰其名字与⼀个加号,以展⽰流程的⾼层概览。

若展开了⼦流程,则在⼦流程内显⽰⼦流程的所有步骤。2) 调⽤活动图⽰上看起来很相像⼦流程,但在BPMN 2.0中,调⽤活动(call activity)有别于⼀般的⼦流程(⼦流程通常也称作嵌⼊式⼦流程)。从概念上说,两者都在流程执⾏到达该活动时,调⽤⼀个⼦流程。两者的区别为,调⽤活动引⽤⼀个流程定义外部的流程,⽽⼦流程嵌⼊在原有流程定义内。调⽤活动的主要使⽤场景是,在多个不同流程定义中调⽤⼀个可复⽤的流程定义。当流程执⾏到达调⽤活动时,会创建⼀个新的执⾏,作为到达调⽤活动的执⾏的⼦执⾏。这个⼦执⾏⽤于执⾏⼦流程,也可⽤于创建并⾏⼦执⾏(与普通流程中⾏为类似)。⽗执⾏将等待⼦流程完成,之后沿原流程继续执⾏。

调⽤过程表现为带有粗边框(折叠与展开都是)的⼦流程。取决于建模⼯具,调⽤过程可以展开,但默认表现为折叠形式。BPMN2.0流程⽰例:

BPMN2.0请假流程定义

请假流程所⽤图元

发布者:admin,转转请注明出处:http://www.yc00.com/web/1690213796a315845.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信