前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >bpmn 学习笔记

bpmn 学习笔记

作者头像
chuckQu
发布2022-08-19 14:13:23
8740
发布2022-08-19 14:13:23
举报
文章被收录于专栏:前端F2E

bpmn 学习笔记

Flowable 是什么

Flowable是一个使用 Java 编写的「轻量级业务流程引擎」Flowable流程引擎可用于部署「BPMN 2.0」流程定义(用于定义流程的行业 XML 标准), 创建这些流程定义的流程实例,进行查询,访问运行中或历史的流程实例与相关数据等等。

具体可以查看Flowable 学习笔记[1]。

了解了Flowable,接下来具体学习下这里提到的「BPMN」是什么。

bpmn 是什么

「业务流程模型注解」(Business Process Modeling Notation - BPMN)是业务流程模型的一种标准图形注解。这个标准是由「对象管理组」(Object Management Group - OMG)维护的。

BPMN 规范的 2.0 版本允许添加精确的技术细节在「BPMN 的图形和元素」中,同时制定 BPMN 元素的「执行语法」。通过使用「XML 语言」来指定业务流程的可执行语法, BPMN 规范已经演变为业务流程的语言, 可以执行在任何兼容 BPMN2 的流程引擎中, 同时依然可以使用强大的图形注解。

可使用 BPMN 表示内部和外部过程及协作,以帮助确定业务流程内的效率和问题。BPMN 图提供业务模型中的所有项目干系人(从业务分析员、开发者到业务经理)都可理解的常规表示法。

BPMN 基本对象

BPMN 的基本对象包括以下几类:

  • 任务(Tasks):用来指代一个由人或计算设备来完成的活动,这些活动通过流程组合在一起而发挥效用。
  • 编排(Choreographies):编排图是某种类型的 BPMN 协作图,该图将重点放在消息及参与者之间的消息序列上。使用编排图以通过可视方式将重点放在池或池对象之间的协作中的消息流上。
  • 事件(Events):用来表明流程的生命周期中发生了什么事。
  • 网关(Gateways):用来控制流程的流向。
  • 流向/顺序流(Flow):是连接两个流程节点的连线。

BPMN的基本对象

下面是一个业务流程图的例子:

业务流程图

BPMN 规范

BPMN 2.0(Business Process Model and Notation)

  • 是一套业务流程模型与符号建模标准
  • 精准执行的语义来描述元素操作
  • 以 XML 为载体,以符号可视化业务

BPMN 2.0 规范[2]这篇文章详细的介绍了相关规范,可以访问链接进行学习。

BPMN 绘制

了解了「BPMN」基本对象,那怎么样才能进行可视化操作呢?这里要用到BPMN.js[3],可以很方便的将bpmn-js集成进 vue 项目,可以访问官方 demo 页[4]进行体验。

核心用法如下:

代码语言:javascript
复制
import BpmnViewer from 'bpmn-js';
import testXML from './test.xml';

const viewer = new BpmnViewer({ container: '#canvas' });

viewer.importXML(testXML, function(err) {
if (err) {
    console.log('error rendering', err);
} else {
    console.log('we are good!');
}
});

通过构造函数指定DOM容器,然后引入xml文件就可以进行绘制。具体的用法等实操过后,再进行记录。

BPMN 导出

当使用可视化工具制作好业务流程后,我们可以将流程保存为xml文件。大致流程如下:

代码语言:javascript
复制
import Modeler from 'bpmn-js/lib/Modeler'

this.modeler = new Modeler({ container: '#canvas' });

handleExportXmlAction() {
    const _this = this
    this.modeler.saveXML({format: true}, function (err, xml) {
       // xml就是需要保存的文件流
       // 具体的下载细节
    })
},

总结

本文大致介绍了BPMN的概念和规范,方便我们在后续的开发中有的放矢。并且介绍了如何使用bpmn-js来绘制业务流程。不仅支持导入、导出,还支持「Undo」「Redo」

BPMN 的概念非常多,元素就包括几十种,先学会使用最基本的元素,再扩大范围进行深入,这样更容易上手。

后续会将bpmn-js相关知识进行沉淀与总结,持续更新中。

Reference

[1]

Flowable 学习笔记: https://juejin.cn/post/6844904158231789582

[2]

BPMN 2.0 规范: https://juejin.cn/post/6941989026711175182

[3]

BPMN.js: https://bpmn.io/toolkit/bpmn-js/

[4]

官方 demo 页: https://demo.bpmn.io/new

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-12-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 前端F2E 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • bpmn 学习笔记
    • Flowable 是什么
      • bpmn 是什么
        • BPMN 基本对象
          • BPMN 规范
            • BPMN 绘制
              • BPMN 导出
                • 总结
                  • Reference
              相关产品与服务
              容器服务
              腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
              领券
              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档