BPMN2.0是什么,BPMN能解决企业流程管理中哪些问题?
一、前言:
在任何行业和企业中,一定存在着各式各样的流程,请假流程、报销流程、入职流程、离职流程、出差流程、合同审批流程、出入库流程等等……
无论是管理者、技术人员还是业务人员,每天肯定也在使用各种流程,但我发现大家对流程的期待好像都不太一致。比如:
业务主管:希望流程能够与不断变化的业务环境保持同步。
技术主管:希望对变化的业务需求迅速做出响应,以较低的成本进行改变。
企业高管:业务系统越来越多,也越来越复杂,完成业务需要人工访问多个系统。
出现这样的情况是由于很多企业流程用的还是比较初级的玩法:
在业务代码里面加入 Status(状态机) 字段维护流程状态,流程负责的审批人可能也是Hard Code(硬编码),这种玩法实现流程初级会比较快。
但是也会导致其他的问题存在,比如:
1、流程健壮性差,但凡出现人员变动,或者组织结构调整,就需要修改代码,维护成本高;
2、流程无法复用,当组织出现新的工作流程,又要重新写一套代码,开发成本非常高;
3、流程和业务代码耦合,你中有我,我中有你(并不符合单一职责和解耦的设计原则)。
这是很多企业里,业务系统关于流程的使用方法。同时,这也是中国企业的数字化发展一直伴随着困惑的主要原因。
不论是ERP、CRM还是SCM,这些特定的软件只能解决特定层面的问题,虽然方便了具体的作业操作,提高了个人生产力,但传统企业存在的许多弊端还是不能解决,如协作流程混乱、部门间沟通不灵、分公司间活动脱节、机构臃肿、管理刻板、反应迟钝等。
同时很多企业的CIO也发现很多系统之间的业务数据根本无法整合,已有的资源无法利用,业务流程繁琐,致使错失良机。
这就是数字化赤裸裸的现实,散落在各个单独系统中的数据和流程只是企业数字化裸奔的遮羞布,一旦掀开就会露出不可见人的裸体。
正是因为这种情况,BPMN2.0才会成为我国企业数字化转型在流程方面的“救命稻草”。成为很多企业挑选系统开发平台时重要的考量标准之一。
那么BPMN2.0是如何解决流程和管理系统中的数字化难题的呢?下面我们一起详细了解下。
二、BPMN2.0是什么?
在了解BPMN2.0如何解决问题之前,首先我们需要清楚BPMN2.0是什么?
概念解释:
1、BPM:
“通过建模、自动化、管理和优化流程,打破跨部门跨系统业务过程依赖、打破信息孤岛,提高业务效率和效果”,通俗一点讲,就是工作流引擎。在进行流程设计时,需要将流程的元素进行定义,并按照一定的格式、标准运行,这就需要一套业务规范,这套规范就是BPM。
2、BPMN1.0:
“业务流程建模标注”,从语义上我们就能理解,BPMN1.0就是将流程定义标准化的一套规则、规范。提出这套标准化的就是OMG(国际性、开放式会员制的非盈利技术标准联盟),这套标准是独立于企业的标准。
3、BPMN2.0:
BPMN2.0相对于BPMN1.0最大的区别就是定义、规范了流程引擎的执行语义和格式,利用标准的图元描述真实的业务发生过程,保证相同的流程在不同的流程引擎中得到一致的执行结果。在BPMN2.0的这套标准中,主要对流程执行定义了三类基本要素,分别为Activities(活动)、Gateways(网关)、Events(事件)。

三、业务同频
如果一个业务流程和业务是不同步的,那么这个业务流程将是没有意义的。
在项目制、人员变动比较大的企业中,这种情况尤为明显。
以项目为主的企业为例。该企业主要是建筑项目实施为主,但是因为不同项目的付款流程、报销流程、业务流程等流程都不一样,而且项目的组成人员也不一样。
每次项目立项都需要把很多技术人员拉上,重新制作或修改原有流程模型,耗费太多人力物力和时间,给项目增添了无用的成本。所以其想要通过项目管理系统数字化管理将会十分困难。
但是如果采用的是BPMN2.0搭建业务流程,就可以很好地解决这个问题。
BPMN2.0作为一个对业务人员友好的标准流程执行语言的图形化前端,其规范和形成了一套标准的标记语言。是一套业务人员也可以使用的、标准化的建模语言。
当需要新建或者修改原有流程的时候,如果是简单的改动,业务人员就可以直接修改。比如项目中财务审批的审核人从A变成B;又或者审批人一个变成两个;再或者流程顺序的改变。这些简单的改动,业务人员就可以完成,而且高效。
而遇到新建流程或者修改流程比较复杂的时候,业务人员和技术人员也能用简单、统一且准确的语言去沟通,减少业务与技术人员之间的混乱。
四、格式转换
如果搭建一个流程模型的过程中,不同业务部门的流程需求都用不同的进行绘制,那将浪费很多时间在转换的过程中。
在组织架构和人员较多的企业中,这种情况更为明显。
例如现在很多的大型企业,每个部门都会有自己的一套流程。在需要搭建流程模型的时候,一般都是由部门先用Word、Diagram Designer、Visio中的Flowcharts流程图等先描绘一些简单的流程,而且可能因为习惯问题,每个部门用的软件都不一致。
而技术人员在拿到文档之后,需要把这些文件整理后再输入到流程建模的软件中。这无形中徒增了技术人员的工作量,而且是无意义的工作量。
但是如果采用的是BPMN2.0搭建业务流程,就可以很好地解决这个问题。
BPMN2.0定义了流程的元模型和执行语义,可以基于XML的流程存储和交换的格式,即它自己解决了存储、交换和执行的问题。
即可导出基于XML的流程文件,也可导入BPM软件,实现了流程建模和流程自动化的松耦合,让不同软件实现互通,减少技术人员的无效工作。
五、打通壁垒
如果不同的工作流程,所属的系统或平台不一样,无法跨部门推动流程,那么部门之间的协作将失去效果。
在协作办公重要性高、企业系统冗杂且不互通的企业中,影响最严重。
例如某生产制造企业成立了20年,在发展过程中,企业采购OA、CRM、MES、进销存等多个系统,不同的业务流程都在不同的业务系统中流转。
当销售人员成功销售之后,需要手动把客户的信息流转到OA系统中,走合同申请流程;签订合同并付款成功后,又需要手动把合同信息录入到MES生产管理系统中,推动生产计划;生产完成后还要手动把信息录入到进销存系统中,才能把货物从仓库中发出。
而且这些系统中一般都有交叉的部分,就像CRM和OA中都有合同的部分,但是CRM中的合同却无法直接走付款流程,必须在OA中重新申请流程才能实现,这就造成了管理和执行的浪费。
但是如果利用BPMN2.0b标准的业务流程管理套件(BPMS),企业可以轻松定义、查看和执行编排和协作流程,实现任何业务流程的编排和自动化,像上面说的情况也就能很好地解决了。例如,企业可以通过API集成遗留系统来提高它们的效率。
同时,BPMN2.0还可以无缝集成工业设备流程自动化技术,以自动执行重复性任务并提高效率。
六、结语
通过BPMN2.0规范的三要素:活动、网关、事件,我们可以做出一个完整闭环的流程,通过网关与事件的配置,几乎可以完成所有的业务需求,而且流程的各个环节与场景一目了然。
但是,它也有一个缺点,规范、元件太多,实际应用中需要很多的专业知识,除了需要了解业务场景之外,还需要根据各个业务场景解析各个环节所用到的元件。
而且BPMN2.0是外国的一套标准,站在国内使用者的角度去看,如果我们想用BPMN2.0标准做一套国内特色的工作流引擎的话,需要封装的内容较多,比如:各个参数的配置语法、格式,如何使用自然语言、如何扩展它的任务接收人、如何与表单挂接等等。
所以,如果企业的业务系统没有那么多工作流程,或者只有很简单的状态从A到B的转移,那么引入流程引擎显然是大马拉小车,费时费力不说,而且会造成简单的需求开发起来很麻烦,拉长开发周期时间。因此不推荐业务场景简单的小企业使用BPMN2.0。但是如果您的企业业务场景比较复杂,那么BPMN2.0就是最好的选择。织信Informat结合低代码和BPMN2.0,为数字化场景复杂的企业解决数字化难题。作为企业数字化转型首选方案,已累计为20多个行业,30000+企业用户提供低代码技术,支持在不同的行业,提出深度场景解决方案。

相关文章:
BPMN2.0是什么,BPMN能解决企业流程管理中哪些问题?
一、前言: 在任何行业和企业中,一定存在着各式各样的流程,请假流程、报销流程、入职流程、离职流程、出差流程、合同审批流程、出入库流程等等…… 无论是管理者、技术人员还是业务人员,每天肯定也在使用各种流程,但…...
Java线程池的基本工作原理及案例
一、线程池的优点 线程池做的工作主要是控制运行的线程的数量,处理过程中将任务放入队列,然后在线程创建后启动这些任务,如果线程数量超过了最大数量超出数量的线程排队等候,等其它线程执行完毕,再从队列中取出任务来执行。 主要特点:线程复用;控制最大并发数;管理线程…...
Stacked hourglass networks for human pose estimation代码学习
Stacked hourglass networks for human pose estimation https://github.com/princeton-vl/pytorch_stacked_hourglass 这是一个用于人体姿态估计的模型,只能检测单个人 作者通过重复的bottom-up(高分辨率->低分辨率)和top-down࿰…...
SpringCloud(五)MQ消息队列
MQ概念常见消息模型helloworld案例实现实现spring AMQP发送消息实现spring AMQP接收消息工作消息队列实现发布订阅模型Fanout Exchange实现DirectExchange实现TopicExchange实现DirectExchange 和FanoutExchange的差异DirectExchange 和TopicExchange的差异基于RabbitListener注…...
SQL语法基础汇总
三年前的存稿 默认端口号 3306 超级用户名 root 登录 mysql -uroot -p / mysql -uroot -proot 退出 exit / quit 服务器版本 SELECT VERSION(); 当前日期 SELECT NOW(); 当前用户 SELECT USER(); 备份 mysqldump -uroot -p 数据库名称 > 保存的路径 还原 create database1-…...
惠普星14Pro电脑开机不了显示错误代码界面怎么办?
惠普星14Pro电脑开机不了显示错误代码界面怎么办?有用户电脑开机之后,进入了一个错误界面,里面有一些错误代码。重启电脑之后依然是无法进入到桌面中,那么这个情况怎么去进行解决呢?我们可以重装一个新系统,…...
顺序表的构造及功能
定义顺序表是一种随机存储都结构,其特点是表中的元素的逻辑顺序与物理顺序相同。假设线性表L存储起始位置为L(A),sizeof(ElemType)是每个数据元素所占的存储空间的大小,则线性表L所对应的顺序存储如下图。顺序表的优缺点优点:随机…...
cesium: 绘制线段(008)
第008个 点击查看专栏目录 本示例的目的是介绍如何在vue+cesium中绘制线段,左键点击开始绘制,右键点击取消绘制 直接复制下面的 vue+cesium源代码,操作2分钟即可运行实现效果. 文章目录 示例效果配置方式示例源代码(共139行)相关API参考:专栏目标示例效果 配置方式 1)…...
HTML、CSS学习笔记4(3D转换、动画)
目录 一、空间转换(3D转换) 1.空间位移 语法: 取值:(正负均可) 透视: 2.空间旋转 3.立体呈现 二、动画(animation) 1.动画的使用 先定义动画 再调用定义好的动画 …...
java的分布式锁
什么是分布式锁 分布式锁是指分布式环境下,系统部署在多个机器中,实现多进程分布式互斥的一种锁。为了保证多个进程能看到锁,锁被存在公共存储(比如 Redis、Memcache、数据库等三方存储中),以实现多个进程并…...
17- TensorFlow实现手写数字识别 (tensorflow系列) (项目十七)
项目要点 模型创建: model Sequential()添加卷积层: model.add(Dense(32, activationrelu, input_dim100)) # 第一层需要 input_dim添加dropout: model.add(Dropout(0.2))添加第二次网络: model.add(Dense(512, activationrelu)) # 除了first, 其他层不要输入shape添加输出…...
Polkadot 基础
Polkadot Polkadot联合并保护了一个不断增长的专业区块链生态系统,称为parachains。Polkadot上的应用程序和服务可以安全地跨链通信,形成真正可互操作的去中心化网络的基础。 真正的互操作性 Polkadot支持跨区块链传输任何类型的数据或资产,…...
spring源码编译
spring源码编译1、安装gradle2、拉取源码3、配置gradle文件来源及镜像仓库4、预编译5、验证6、可能遇到的报错6.1、jdk.jfr不存在6.2、checkstyleMain6.3、org.gradle.api.artifacts.result.ComponentSelectionReason.getDescription()Ljava/lang/String6.4、其他jdk࿱…...
防盗链是什么?带你了解什么是防盗链
目录 什么是防盗链 防盗链的定义 防盗链的产生 防盗链的实现 什么是防盗链 防盗链其实就是采用服务器端编程,通过url过滤技术实现的防止盗链的软件。 比如:photo.abc.com/video.mp4 这个下载地址,如果没有装防盗链,别人就能轻…...
Linux基础命令-fdisk管理磁盘分区表
文章目录 fdisk 命令介绍 命令格式 基本参数 1)常用参数 2)fdisk菜单操作说明 创建一个磁盘分区 1)创建分区 2)创建交换分区 参考实例 1) 显示当前分区的信息 2) 显示每个磁盘的分区信息 命令…...
(四)K8S 安装 Nginx Ingress Controller
ingress-nginx 是 Kubernetes 的入口控制器,使用NGINX作为反向代理和负载均衡器 版本介绍 版本1:Ingress NGINX Controller(k8s社区的ingres-nginx) 以 NGINX 开源技术为基础(kubernetes.io),可在GitHub的 kubernet…...
高频面试题
MyISAM和InnoDB是MySQL两种常见的存储引擎,它们之间有以下几点区别: 事务支持:MyISAM不支持事务处理,而InnoDB支持事务处理。 行级锁:MyISAM只支持表级锁,而InnoDB支持行级锁,可以避免并发访问…...
js 字节数组操作,TCP协议组装
js字节数组,进制转换js基础知识数组 Array扩展操作符三个点(...)ArrayBufferslice() 数组复制reduce 对数组中的每个元素执行一个提供的函数,将其结果汇总为单个返回值splice 数组删除,添加,替换js 字节数组转数字以及…...
JavaScript的引入并执行-包含动态引入与静态引入
JavaScript的引入并执行-包含动态引入与静态引入 JavaScript引入方式 html文件需要引入JavaScript代码,才能在页面里使用JavaScript代码。 静态引入 行内式 直接在DOM标签上使用 <!DOCTYPE html> <html lang"en"> <head><meta ch…...
第四阶段01-酷鲨商城项目准备
1. 关于csmall-product项目 这是“酷鲨商城”大项目中的“商品管理”项目,是一个后台管理项目(给管理员,或运营人员使用的项目,并不是普通用户使用的),并且,只会涉及与发布商品可能相关的功能开…...
谷歌浏览器插件
项目中有时候会用到插件 sync-cookie-extension1.0.0:开发环境同步测试 cookie 至 localhost,便于本地请求服务携带 cookie 参考地址:https://juejin.cn/post/7139354571712757767 里面有源码下载下来,加在到扩展即可使用FeHelp…...
Day131 | 灵神 | 回溯算法 | 子集型 子集
Day131 | 灵神 | 回溯算法 | 子集型 子集 78.子集 78. 子集 - 力扣(LeetCode) 思路: 笔者写过很多次这道题了,不想写题解了,大家看灵神讲解吧 回溯算法套路①子集型回溯【基础算法精讲 14】_哔哩哔哩_bilibili 完…...
第25节 Node.js 断言测试
Node.js的assert模块主要用于编写程序的单元测试时使用,通过断言可以提早发现和排查出错误。 稳定性: 5 - 锁定 这个模块可用于应用的单元测试,通过 require(assert) 可以使用这个模块。 assert.fail(actual, expected, message, operator) 使用参数…...
虚拟电厂发展三大趋势:市场化、技术主导、车网互联
市场化:从政策驱动到多元盈利 政策全面赋能 2025年4月,国家发改委、能源局发布《关于加快推进虚拟电厂发展的指导意见》,首次明确虚拟电厂为“独立市场主体”,提出硬性目标:2027年全国调节能力≥2000万千瓦࿰…...
背包问题双雄:01 背包与完全背包详解(Java 实现)
一、背包问题概述 背包问题是动态规划领域的经典问题,其核心在于如何在有限容量的背包中选择物品,使得总价值最大化。根据物品选择规则的不同,主要分为两类: 01 背包:每件物品最多选 1 次(选或不选&#…...
STL 2迭代器
文章目录 1.迭代器2.输入迭代器3.输出迭代器1.插入迭代器 4.前向迭代器5.双向迭代器6.随机访问迭代器7.不同容器返回的迭代器类型1.输入 / 输出迭代器2.前向迭代器3.双向迭代器4.随机访问迭代器5.特殊迭代器适配器6.为什么 unordered_set 只提供前向迭代器? 1.迭代器…...
IP选择注意事项
IP选择注意事项 MTP、FTP、EFUSE、EMEMORY选择时,需要考虑以下参数,然后确定后选择IP。 容量工作电压范围温度范围擦除、烧写速度/耗时读取所有bit的时间待机功耗擦写、烧写功耗面积所需要的mask layer...
break 语句和 continue 语句
break语句和continue语句都具有跳转作用,可以让代码不按既有的顺序执行 break break语句用于跳出代码块或循环 1 2 3 4 5 6 for (var i 0; i < 5; i) { if (i 3){ break; } console.log(i); } continue continue语句用于立即终…...
篇章一 论坛系统——前置知识
目录 1.软件开发 1.1 软件的生命周期 1.2 面向对象 1.3 CS、BS架构 1.CS架构编辑 2.BS架构 1.4 软件需求 1.需求分类 2.需求获取 1.5 需求分析 1. 工作内容 1.6 面向对象分析 1.OOA的任务 2.统一建模语言UML 3. 用例模型 3.1 用例图的元素 3.2 建立用例模型 …...
生产管理系统开发:专业软件开发公司的实践与思考
生产管理系统开发的关键点 在当前制造业智能化升级的转型背景下,生产管理系统开发正逐步成为企业优化生产流程的重要技术手段。不同行业、不同规模的企业在推进生产管理数字化转型过程中,面临的挑战存在显著差异。本文结合具体实践案例,分析…...
