首页 > 其他分享 >BPM工作流引擎常见的术语和概念介绍

BPM工作流引擎常见的术语和概念介绍

时间:2023-04-05 19:57:06浏览次数:49  
标签:术语 定义 实例 BPMN 流程 BPM 引擎 审批 节点

本文重点介绍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流程建模工具(Web-based tooling for BPMN, DMN, CMMN, and Forms | bpmn.io),用户通过拖拉拽的方式设计流程图,这个设计完的xml文件就是流程定义。

19、表单(Form)

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

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

1、会签

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

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

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

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

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、减签

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

 

 

 

标签:术语,定义,实例,BPMN,流程,BPM,引擎,审批,节点
From: https://www.cnblogs.com/hibpm/p/17290714.html

相关文章

  • 复杂多变场景下的Groovy脚本引擎实战
    一、前言因为之前在项目中使用了Groovy对业务能力进行一些扩展,效果比较好,所以简单记录分享一下,这里你可以了解:为什么选用Groovy作为脚本引擎了解Groovy的基本原理和Java如何集成Groovy在项目中使用脚本引擎时做的安全和性能优化实际使用的一些建议二、为什么使用脚本语言2.1脚本语......
  • 分布式搜索引擎Elasticsearch的架构分析
    一、写在前面 ES(Elasticsearch下文统一称为ES)越来越多的企业在业务场景是使用ES存储自己的非结构化数据,例如电商业务实现商品站内搜索,数据指标分析,日志分析等,ES作为传统关系型数据库的补充,提供了关系型数据库不具备的一些能力。ES最先进入大众视野的是其能够实现全文搜索的能力,也......
  • 搜索引擎关键词采集,联系任务采集,网址采集
    使用搜索引擎进行关键词的采集,可以让我们获得更多的信息并准确地找到我们所需要的内容。通过使用搜索引擎,我们可以快速搜索全球各地的网页、文章、资料以及其他文档。除此之外,搜索引擎还提供与主题相关的相关性排序,这样可以更快速有效地了解当前所要访问的内容。在工作场景下,使用......
  • 为虚幻引擎C++项目设置Visual Studio开发环境 | 虚幻引擎5.1文档 (unrealengine.com)
    设置VisualStudio设置VisualStudio以使用虚幻引擎的提示、技巧和技术Beginner本页面的内容版本兼容性新安装VisualStudio时的选项推荐设置虚幻引擎(简称UE) 能与 VisualStudio(简称VS) 完美结合,使你能够快速、简单地改写项目代码,并能即刻查......
  • 设置Visual Studio以使用虚幻引擎的提示、技巧和技术
    设置VisualStudio设置VisualStudio以使用虚幻引擎的提示、技巧和技术Beginner本页面的内容版本兼容性新安装VisualStudio时的选项推荐设置虚幻引擎(简称UE) 能与 VisualStudio(简称VS) 完美结合,使你能够快速、简单地改写项目代码,并能即刻查......
  • 互联网相关的术语
    目录语法糖概念举例交叉编译本地编译交叉编译QPS和TPSRPO和RTO单活、双活和多活SKU和SPURDSBRD、MRD、PRD埋点SOA//todo服务端发现、客户端发现//todo服务感知//todoLogingMetricesTracingIngressMesh//todoIAP沙盒事故定级IPCGR,PRDAS和DALRALRaft协议Paxos协议MITM攻击HMAC......
  • 聚焦用户精细化运营场景,极客邦科技与火山引擎数智平台达成合作
     更多技术交流、求职机会,欢迎关注字节跳动数据平台微信公众号,回复【1】进入官方交流群 近日,北京极客邦科技有限公司(以下简称“极客邦科技”)与火山引擎数智平台VeDI达成合作,双方将聚焦用户运营场景下的数智升级展开系列协作。极客邦科技以KaaS模式服务数字人才全面......
  • 存储引擎和数据类型
    目录配置文件存储引擎(面试用)mysql的基本数据类型1.整形2.浮点型3.字符串4.日期类型5.枚举与集合整型中括号内数字的作用(面试用)创建表的完整语法配置文件#1.复制my-default.ini文件#2.命名为my.ini#3.修改完配置文件只会,一定别忘重启服务端存储引擎(面试用)#理论部分......
  • 实验一-密码引擎-3-加密API研究
    一、任务详情密码引擎API的主要标准和规范包括:1微软的CryptoAPI2RAS公司的PKCS#11标准3中国商用密码标准:GMT0016-2012智能密码钥匙密码应用接口规范,GMT0018-2012密码设备应用接口规范等研究以上API接口,总结他们的异同,并以龙脉GM3000Key为例,写出调用不同接口的代码,提交......
  • 跨境电商时代的“智慧引擎”:探索大数据如何推动跨境电商发展
    如今跨境电商成为了国际贸易领域的一个新热点,而大数据技术的应用,则为跨境电商的发展提供了强大的助力。本文将从大数据的角度探讨如何推动跨境电商的发展,以及大数据技术在跨境电商中的应用。 一、大数据与跨境电商随着全球化的加速,跨境电商已成为全球贸易的一部分。跨境电商......