本文重点介绍BPM业务流程管理中常常用到概念和术语,这些概念同样适用于JBPM、Activiti、Flowable、Camunda等主流的开源工作流引擎。
BPMN:业务流程模型和标记法(BPMN, Business Process Model and Notation)是一套图形化表示法,用于以业务流程模型详细说明各种业务流程。它最初由业务流程管理倡议组织(BPMI, Business Process Management Initiative)开发,名称为"Business Process Modeling Notation",即“业务流程建模标记法”。
Case Management Model Notation 案例管理模型符号。CMMN是一种图形符号,用于捕获基于处理需要各种活动的案例的工作方法,这些活动可能以不可预测的顺序执行以响应不断变化的情况。使用以事件为中心的方法和案例文件的概念,CMMN扩展了可以用BPMN建模的界限,包括结构化工作量减少和知识工作者推动的工作量。使用BPMN和CMMN的组合允许用户覆盖更广泛的工作方法。
DMN是决策模型和符号(Decision Model and Notation)的英文缩写,是由BMN背后的组织OMG管理的一个标准。DMN 是一种用于精确规范业务决策和业务规则的建模语言和符号。DMN 旨在与 BPMN 和/或 CMMN 一起工作,提供一种机制来对与流程和案例相关的决策进行建模。虽然 BPMN、CMMN 和 DMN 可以独立使用,但它们经过精心设计以相互补充。BPMN、CMMN和DMN真正构成了流程改进标准的“三冠王”。
Process Definition即流程定义,指通过建模生成的一个符合BPMN规范的完整流程模型定义文件。Process Definition定义了流程的结构,或者说定义了业务活动的执行过程。Camunda bpm使用bpmn2.0作为其流程定义的主要建模语言。
顺序流是连接两个流程节点的连线。顺序流是一端带有箭头的实线,可在图中或单个池中链接流程内的各个元素,并显示各个元素的执行顺序。消息流是一端带有箭头的点线,可链接两个单独的池(或两个单独的池中的元素),并显示消息发送的方向。
Process Instance即流程实例。流程实例是流程定义的单独执行,流程定义和流程实例是一对多关系。流程实例与流程定义的关系与面向对象编程中对象与类的关系相同(在这种类比中,流程实例扮演对象的角色,流程定义扮演类的角色)。
流程定义设计完成后,发布到BPM,通过流程引擎解析流程定义,发起一次流程即创建了一个流程实例,比如:创建了一个“请假流程”,这是一个流程定义,张三发起了一次请假流程,即创建了一个流程实例,李四也发起了一次请假,就是创建了另一个流程实例,这两个实例均基于流程定义创建生成。
Execution即流程执行实例,如果流程实例包含多个执行路径(例如,在并行网关之后),则会同时产生多个执行实例,即execution, 通过excutionId能够区分流程实例内的当前活动路径。
Execution(执行)是分层的,流程实例中的所有Execution(执行)组成一个树,Process Instance(流程实例)是树中的根节点,Process Instance(流程实例)本身就是一个Execution(执行)。
Activity Instance即活动实例,活动实例概念与执行概念类似,但采用了不同的视角。虽然可以将执行想象为在流程中移动的令牌,但活动实例表示活动(任务、子流程等)的单个实例。因此,活动实例的概念更面向状态。
task 所有的任务都是活动,但是活动不全是任务,任务是一个流程的节点,但是并非所有流程节点都是任务。
Camunda中的Service Task(服务任务)用于调用服务。在Camunda中,可以通过调用本地Java代码、外部工作项、web服务形式实现的逻辑来完成的。
在Camunda中,脚本任务是一个自动活动,当流程执行到脚本任务时,相关的脚本自动执行。camunda支持大多是兼容JSR-223的脚本引擎实现,比如Groovy, JavaScript, JRuby and Jython。
Job and Job Definition即作业执行器,Camunda流程引擎包含一个名为Job Executor的组件。作业执行器是一个调度组件,负责执行异步后台工作。考虑一个计时器事件的例子:每当流程引擎到达计时器事件时,它将停止执行,将当前状态保存到数据库,并创建一个作业以在将来继续执行。部署流程时,流程引擎会为流程中的每个活动创建作业定义,这些活动将在运行时创建作业。
event 事件是BPMN流程建模元素,表示在流程过程中“发生”的事情,事件会影响流程的走向。BPMN定义了不同的事件类型。事件包含开始(Start)、中间(Intermediate)、边界(Boundary)和结束(End)四种类型。根据触发方式不同,可以分为捕获事件(Catching Event)和抛出事件(Throwing Event)。
详细参考:https://lowcode.blog.csdn.net/article/details/122886122
Process Variable即流程变量,流程变量在整个工作流中扮演很重要的作用,是业务和流程引擎之间交互信息的载体,业务可以把数据放到流程变量里传递给流程引擎,流程引擎也可以把信息放到流程变量给传递给业务,流程变量最常见的用途有路由条件表达式、流程执行事件参数等。例如:请假流程中有请假天数、请假原因等一些参数都为流程变量的范围。流程变量的作用域范围是流程实例,也就是说各个流程实例的流程变量是不相互影响的。
Gateway是BPMN2规范中的流程定义元素,中文可称为“网关”、“决策”、“判断”。网关用来控制流程的执行流向,当在拆分路径时产生令牌,在合并路径时消费令牌。常用网关可分为排他网关(XOR)、并行网关(AND)和包容网关(OR)。BPMN2.0规范中提供了bpmn:exclusiveGateway排他网关标签、bpmn:parallelGateway并行网关标签来定义,activiti、flowable、camunda等开源工作流引擎均支持该标签。
BPMN中的泳道对象(也称为泳道)是表示业务流程参与者的矩形框。泳道可能包含由该泳道(参与者)执行的流对象,除了必须有一个空体的黑盒子。泳道可以水平排列,也可以垂直排列。它们在语义上是相同的,只是表示不同。对于水平泳道,流程从左到右流动,而垂直泳道中的流程从上到下流动。泳道的例子包括客户、客户部门、支付网关和开发团队。
子流程是包含其他活动、网关、事件等的活动,其本身形成的流程是更大流程的一部分。子流程完全在父流程中定义(这就是为什么它通常被称为嵌入式子流程)。
BPMN 2.0区分了嵌入式子流程(Embedded Subprocess)和调用活动(Call Activity)。从概念上看,当流程执行到达活动时,两者都将调用子流程。
不同之处在于,调用活动引用流程定义外部的流程,而子流程嵌入在原始流程定义中。调用活动的主要用例是拥有可重用的流程定义,可以从多个其他流程定义调用该定义。子流程的流程定义是在运行时解析的。如果需要,也可以独立调用子流程。
当流程执行到达调用活动时,将创建一个新的流程实例,该实例用于执行子流程,可能会像在常规流程中那样创建并行子执行。主流程实例将一直等待,直到子流程完全结束,然后继续原始流程。
子流程允许分层建模。许多建模工具允许折叠子流程,隐藏子流程的所有细节,并显示业务流程的高级端到端概述。
临时流程是一组业务活动和相应的工件(例如,信息,决策和产品),只能在高级别的聚合中进行标准化。实际的活动种类及其排序因个案而异。临时流程在国内也被称为“任意流”。以下是Ad-hoc流程的特征:
Deployment(部署)是指将流程定义发布到工作量引擎中之后称为deployment。
提供SSO功能凭证管理工作,可以用来管理权限、用户、组
模型管理工具,用于定义流程模型、表单及应用定义。在Camunda BPM中,提供了C/S流程建模工具(Modeler)和B/S流程建模工具(bpmn.io),用户通过拖拉拽的方式设计流程图,这个设计完的xml文件就是流程定义。
form 表单配置给每个流程节点使用,如请假申请中需要用户填写请假天数事由,审批节点中需要审批人填写审批意见等。
在线体验系统:http://www.yunchengxc.com
BPM是指通过对业务流程进行分析、设计、实施、监控和优化来实现组织目标的一种管理方法和技术。以下是一些BPM相关的概念和术语:
流程指在特定环境下,为完成一定的目标,按照特定的规则和流程活动所构成的一系列行为的集合。
流程图(Process Diagram):是用来表示流程的图形化工具,通常采用流程图、数据流图等。
流程建模(Process Modeling):指将现实中的业务流程抽象出来,用流程图等模型表示出来的过程。
流程设计(Process Design):指在流程建模的基础上,进一步优化流程,以实现组织目标。
流程实施(Process Implementation):指将流程设计落实到实际的业务中,并确保其按照设计要求执行。
流程监控(Process Monitoring):指对流程进行实时监测,及时发现问题并进行调整。
流程优化(Process Optimization):指根据实际情况,对流程进行调整,以提高效率、降低成本等。
自动化流程(Automated Process):指利用计算机技术将流程自动化,实现自动化的业务流程。
流程引擎(Process Engine):是一种计算机软件,用于管理和执行流程,支持流程自动化和流程优化。
业务规则(Business Rule):指组织中制定的一些规则和标准,用于指导业务流程的执行。
业务活动(Business Activity):指流程中的具体操作或任务,是实现流程目标的基本单位。
业务事件(Business Event):指对业务流程的状态变化或重要事件的观察和记录,可以用来驱动流程执行。
会签是一种联合审批的特殊审批流程,可理解为一种多人投票机制,一个任务需要多个人同时处理,然后汇总多个人的意见,决定流程下一步该如何执行。流程设计时,若会签审批节点中设置多个参与人,流程运行时,会签节点任务需要多人共同处理,然后汇总多人的处理意见,决定会签节点的处理结果。
会签分并行会签和顺序会签两种:
一个流程审批节点里有多个处理人,任意一个人处理后就能进入下一个节点。
例如:员工发起采购申请,提交给多名领导审批,只要有一名领导同意即可提交到下一节点。
BPMN2.0规范中提供了bpmn:multiInstanceLoopCharacteristics多实例循环的模型定义,并通过bpmn:completionCondition标签定义多实例完成条件,activiti、flowable、camunda等开源工作流引擎均支持该属性。
抄送:将审批结果通知给抄送列表对应的人。
驳回:将审批重置发送给某节点,重新审批。驳回也叫退回,也可以分退回申请人、退回上一步、任意退回等。
转办:A转给其B审批,B审批后,进入下一节点。
委派:A转给其B审批,B审批后,转给A,A审批后进入下一节点。
跳转:可以将当前流程实例跳转到任意办理节点
拿回:在当前办理人尚未处理文件前,允许上一节点提交人员执行拿回
撤销:流程发起者可以对流程进行撤销处理
催办:可以给当前办理人员发送催办通知消息
加签:允许当前办理人根据需要自行增加当前办理节点的办理人员
减签:在当前办理人操作之前减少办理人