BPM流程引擎相关概念术语一网打尽

开源
BPMN:业务流程模型和标记法(BPMN, Business Process Model and Notation)是一套图形化表示法,用于以业务流程模型详细说明各种业务流程。它最初由业务流程管理倡议组织(BPMI, Business Process Management Initiative)开发,名称为"Business Process Modeling Notation",即“业务流程建模标

本文重点介绍BPM业务流程管理中常常用到概念和术语,这些概念同样适用于JBPM、Activiti、Flowable、Camunda等主流的开源工作流引擎。

一、BPM模型符号协议

1、BPMN (业务流程模型和标记法)

BPMN:业务流程模型和标记法(BPMN, Business Process Model and Notation)是一套图形化表示法,用于以业务流程模型详细说明各种业务流程。它最初由业务流程管理倡议组织(BPMI, Business Process Management Initiative)开发,名称为"Business Process Modeling Notation",即“业务流程建模标记法”。

2、CMMN (案例管理模型符号)

Case Management Model Notation 案例管理模型符号。CMMN是一种图形符号,用于捕获基于处理需要各种活动的案例的工作方法,这些活动可能以不可预测的顺序执行以响应不断变化的情况。使用以事件为中心的方法和案例文件的概念,CMMN扩展了可以用BPMN建模的界限,包括结构化工作量减少和知识工作者推动的工作量。使用BPMN和CMMN的组合允许用户覆盖更广泛的工作方法。

3、DMN(决策模型符号)

DMN是决策模型和符号(Decision Model and Notation)的英文缩写,是由BMN背后的组织OMG管理的一个标准。DMN 是一种用于精确规范业务决策和业务规则的建模语言和符号。DMN 旨在与 BPMN 和/或 CMMN 一起工作,提供一种机制来对与流程和案例相关的决策进行建模。虽然 BPMN、CMMN 和 DMN 可以独立使用,但它们经过精心设计以相互补充。BPMN、CMMN和DMN真正构成了流程改进标准的“三冠王”。

二、流程引擎相关术语

1、流程定义(Process Definition)

Process Definition即流程定义,指通过建模生成的一个符合BPMN规范的完整流程模型定义文件。Process Definition定义了流程的结构,或者说定义了业务活动的执行过程。Camunda bpm使用bpmn2.0作为其流程定义的主要建模语言。

2、流向/顺序流(Flow):

顺序流是连接两个流程节点的连线。顺序流是一端带有箭头的实线,可在图中或单个池中链接流程内的各个元素,并显示各个元素的执行顺序。消息流是一端带有箭头的点线,可链接两个单独的池(或两个单独的池中的元素),并显示消息发送的方向。

3、流程实例(Process Instance)

Process Instance即流程实例。流程实例是流程定义的单独执行,流程定义和流程实例是一对多关系。流程实例与流程定义的关系与面向对象编程中对象与类的关系相同(在这种类比中,流程实例扮演对象的角色,流程定义扮演类的角色)。

流程定义设计完成后,发布到BPM,通过流程引擎解析流程定义,发起一次流程即创建了一个流程实例,比如:创建了一个“请假流程”,这是一个流程定义,张三发起了一次请假流程,即创建了一个流程实例,李四也发起了一次请假,就是创建了另一个流程实例,这两个实例均基于流程定义创建生成。

4、执行实例(Execution)

Execution即流程执行实例,如果流程实例包含多个执行路径(例如,在并行网关之后),则会同时产生多个执行实例,即execution, 通过excutionId能够区分流程实例内的当前活动路径。

Execution(执行)是分层的,流程实例中的所有Execution(执行)组成一个树,Process Instance(流程实例)是树中的根节点,Process Instance(流程实例)本身就是一个Execution(执行)。

5、活动实例(Activity Instance)

Activity Instance即活动实例,活动实例概念与执行概念类似,但采用了不同的视角。虽然可以将执行想象为在流程中移动的令牌,但活动实例表示活动(任务、子流程等)的单个实例。因此,活动实例的概念更面向状态。

6、任务(Task)

task 所有的任务都是活动,但是活动不全是任务,任务是一个流程的节点,但是并非所有流程节点都是任务。

用户任务: 就是需要用户参与触发的任务。

服务任务: 服务任务又可以划分为各种各样的服务任务。

7、服务任务(Service Task)

Camunda中的Service Task(服务任务)用于调用服务。在Camunda中,可以通过调用本地Java代码、外部工作项、web服务形式实现的逻辑来完成的。

8、脚本任务(Script Task)

在Camunda中,脚本任务是一个自动活动,当流程执行到脚本任务时,相关的脚本自动执行。camunda支持大多是兼容JSR-223的脚本引擎实现,比如Groovy, JavaScript, JRuby and Jython。

9、定时任务(Job and Job Definition)

Job and Job Definition即作业执行器,Camunda流程引擎包含一个名为Job Executor的组件。作业执行器是一个调度组件,负责执行异步后台工作。考虑一个计时器事件的例子:每当流程引擎到达计时器事件时,它将停止执行,将当前状态保存到数据库,并创建一个作业以在将来继续执行。部署流程时,流程引擎会为流程中的每个活动创建作业定义,这些活动将在运行时创建作业。

10、事件(event)

event 事件是BPMN流程建模元素,表示在流程过程中“发生”的事情,事件会影响流程的走向。BPMN定义了不同的事件类型。事件包含开始(Start)、中间(Intermediate)、边界(Boundary)和结束(End)四种类型。根据触发方式不同,可以分为捕获事件(Catching Event)和抛出事件(Throwing Event)。

详细参考:​​https://lowcode.blog.csdn.net/article/details/122886122​

11、流程变量(Process Variable)

Process Variable即流程变量,流程变量在整个工作流中扮演很重要的作用,是业务和流程引擎之间交互信息的载体,业务可以把数据放到流程变量里传递给流程引擎,流程引擎也可以把信息放到流程变量给传递给业务,流程变量最常见的用途有路由条件表达式、流程执行事件参数等。例如:请假流程中有请假天数、请假原因等一些参数都为流程变量的范围。流程变量的作用域范围是流程实例,也就是说各个流程实例的流程变量是不相互影响的。

12、网关(Gateways)

Gateway是BPMN2规范中的流程定义元素,中文可称为“网关”、“决策”、“判断”。网关用来控制流程的执行流向,当在拆分路径时产生令牌,在合并路径时消费令牌。常用网关可分为排他网关(XOR)、并行网关(AND)和包容网关(OR)。BPMN2.0规范中提供了bpmn:exclusiveGateway排他网关标签、bpmn:parallelGateway并行网关标签来定义,activiti、flowable、camunda等开源工作流引擎均支持该标签。

13、泳道(Swimlanes):

BPMN中的泳道对象(也称为泳道)是表示业务流程参与者的矩形框。泳道可能包含由该泳道(参与者)执行的流对象,除了必须有一个空体的黑盒子。泳道可以水平排列,也可以垂直排列。它们在语义上是相同的,只是表示不同。对于水平泳道,流程从左到右流动,而垂直泳道中的流程从上到下流动。泳道的例子包括客户、客户部门、支付网关和开发团队。

池(Pools):pool代表业务流程中的参与者。它可以是一个特定的实体(如部门)或一个角色(如助理经理、医生、学生、供应商)。

游道(Lanes):lane是池的子分区。例如,当您有一个池部门时,您可以将部门主管和普通职员作为泳道。与池一样,您可以使用lane来表示流程中涉及的特定实体或角色。

14、子流程(SubProcess)

子流程是包含其他活动、网关、事件等的活动,其本身形成的流程是更大流程的一部分。子流程完全在父流程中定义(这就是为什么它通常被称为嵌入式子流程)。

BPMN 2.0区分了嵌入式子流程(Embedded Subprocess)和调用活动(Call Activity)。从概念上看,当流程执行到达活动时,两者都将调用子流程。

不同之处在于,调用活动引用流程定义外部的流程,而子流程嵌入在原始流程定义中。调用活动的主要用例是拥有可重用的流程定义,可以从多个其他流程定义调用该定义。子流程的流程定义是在运行时解析的。如果需要,也可以独立调用子流程。

当流程执行到达调用活动时,将创建一个新的流程实例,该实例用于执行子流程,可能会像在常规流程中那样创建并行子执行。主流程实例将一直等待,直到子流程完全结束,然后继续原始流程。

子流程允许分层建模。许多建模工具允许折叠子流程,隐藏子流程的所有细节,并显示业务流程的高级端到端概述。

15、特别流程(Ad-hoc)

临时流程是一组业务活动和相应的工件(例如,信息,决策和产品),只能在高级别的聚合中进行标准化。实际的活动种类及其排序因个案而异。临时流程在国内也被称为“任意流”。以下是Ad-hoc流程的特征:

虽然可以预测某些活动,但是一开始就无法完全指定大部分过程,因为它需要的信息只能以某种方式进入项目。

如果我们假设在ad-hoc流程的上下文中永远不会确定下一步,则它们的执行不能由传统的基于流程的信息系统控制,在大多数情况下,知识工作者可以控制流程。

似乎不可能在设计时考虑临时过程的所有可能性,这样的过程模型将变得复杂且难以管理。

16、部署(deployment)

Deployment(部署)是指将流程定义发布到工作量引擎中之后称为deployment。

17、身份管理(IDM)

提供SSO功能凭证管理工作,可以用来管理权限、用户、组

18、流程设计器(Modeler)

模型管理工具,用于定义流程模型、表单及应用定义。在Camunda BPM中,提供了C/S流程建模工具(Modeler)和B/S流程建模工具(bpmn.io),用户通过拖拉拽的方式设计流程图,这个设计完的xml文件就是流程定义。

19、表单(Form)

form 表单配置给每个流程节点使用,如请假申请中需要用户填写请假天数事由,审批节点中需要审批人填写审批意见等。

20、BPM(Business Process Management,业务流程管理)

BPM是指通过对业务流程进行分析、设计、实施、监控和优化来实现组织目标的一种管理方法和技术。以下是一些BPM相关的概念和术语:

21、流程(Process)

流程指在特定环境下,为完成一定的目标,按照特定的规则和流程活动所构成的一系列行为的集合。

22、流程图(Process Diagram)

流程图(Process Diagram):是用来表示流程的图形化工具,通常采用流程图、数据流图等。

23、流程建模(Process Modeling)

流程建模(Process Modeling):指将现实中的业务流程抽象出来,用流程图等模型表示出来的过程。

23、流程设计(Process Design)

流程设计(Process Design):指在流程建模的基础上,进一步优化流程,以实现组织目标。

24、流程实施(Process Implementation)

流程实施(Process Implementation):指将流程设计落实到实际的业务中,并确保其按照设计要求执行。

25、流程监控(Process Monitoring)

流程监控(Process Monitoring):指对流程进行实时监测,及时发现问题并进行调整。

26、流程优化(Process Optimization)

流程优化(Process Optimization):指根据实际情况,对流程进行调整,以提高效率、降低成本等。

27、自动化流程(Automated Process)

自动化流程(Automated Process):指利用计算机技术将流程自动化,实现自动化的业务流程。

28、流程引擎(Process Engine)

流程引擎(Process Engine):是一种计算机软件,用于管理和执行流程,支持流程自动化和流程优化。

29、业务规则(Business Rule)

业务规则(Business Rule):指组织中制定的一些规则和标准,用于指导业务流程的执行。

30、业务活动(Business Activity)

业务活动(Business Activity):指流程中的具体操作或任务,是实现流程目标的基本单位。

31、业务事件(Business Event)

业务事件(Business Event):指对业务流程的状态变化或重要事件的观察和记录,可以用来驱动流程执行。

三、中国特色流程操作概念

1、会签

会签是一种联合审批的特殊审批流程,可理解为一种多人投票机制,一个任务需要多个人同时处理,然后汇总多个人的意见,决定流程下一步该如何执行。流程设计时,若会签审批节点中设置多个参与人,流程运行时,会签节点任务需要多人共同处理,然后汇总多人的处理意见,决定会签节点的处理结果。

会签分并行会签和顺序会签两种:

并行会签:指同一个审批节点设置多个人,如A、B、C三人,三人会同时收到待办任务,需全部同意之后,审批才可到下一审批节点。

顺序会签:指同一个审批节点设置多个人,如A、B、C三人,三人按顺序依次收到待办,即A先审批,A提交后B才能审批,需全部同意之后,审批才可到下一审批节点。

2、或签

一个流程审批节点里有多个处理人,任意一个人处理后就能进入下一个节点。

例如:员工发起采购申请,提交给多名领导审批,只要有一名领导同意即可提交到下一节点。

BPMN2.0规范中提供了
bpmn:multiInstanceLoopCharacteristics多实例循环的模型定义,并通过bpmn:completionCondition标签定义多实例完成条件,activiti、flowable、camunda等开源工作流引擎均支持该属性。

3、抄送

抄送:将审批结果通知给抄送列表对应的人。

4、驳回

驳回:将审批重置发送给某节点,重新审批。驳回也叫退回,也可以分退回申请人、退回上一步、任意退回等。

退回申请人: 直接把流程退回给申请节点

退回上一步: 退回流程上一节点

退回任意节点: 退回到流程走过任意一个节点

5、转办

转办:A转给其B审批,B审批后,进入下一节点。

6、委派

委派:A转给其B审批,B审批后,转给A,A审批后进入下一节点。

7、跳转

跳转:可以将当前流程实例跳转到任意办理节点

8、拿回

拿回:在当前办理人尚未处理文件前,允许上一节点提交人员执行拿回

9、撤销

撤销:流程发起者可以对流程进行撤销处理

10、催办

催办:可以给当前办理人员发送催办通知消息

11、加签

加签:允许当前办理人根据需要自行增加当前办理节点的办理人员

12、减签

减签:在当前办理人操作之前减少办理人

在线体验系统:http://www.yunchengxc.com

责任编辑:武晓燕 来源: 今日头条
相关推荐

2021-08-05 06:54:05

流程控制default

2024-04-26 00:25:52

Rust语法生命周期

2024-02-27 10:11:36

前端CSS@规则

2021-10-11 07:55:42

浏览器语法Webpack

2010-08-25 01:59:00

2011-12-02 09:22:23

网络管理NetQos

2024-04-07 08:41:34

2013-08-02 10:52:10

Android UI控件

2024-06-12 00:00:05

2024-08-26 10:01:50

2013-10-16 14:18:02

工具图像处理

2020-10-19 06:43:53

Redis脚本原子

2009-04-02 10:17:00

交换机产品选购

2023-04-03 08:30:54

项目源码操作流程

2023-09-26 00:29:40

CSS布局标签

2021-10-29 09:32:33

springboot 静态变量项目

2019-07-24 15:30:00

SQL注入数据库

2021-05-20 11:17:49

加密货币区块链印度

2020-02-21 08:45:45

PythonWeb开发框架

2023-09-06 18:37:45

CSS选择器符号
点赞
收藏

51CTO技术栈公众号