BPMNJS 简介

2024-10-31 11:42:17 | 作者: 匿名

BPMN 是一个标准。 Idea有一个可视化界面。 BPMN 是一个不错的选择。下面我们简单看一下它的内容。

BPMNJS 简介

bpmn.js 是一个BPMN 2.0 渲染工具包和Web 建模器。它是用JavaScript 编写的,在浏览器中嵌入BPMN 2.0 图表,并且独立于后端,这也使得将其轻松嵌入到任务Web 应用程序中。 可以单独使用,也可以集成到您的应用程序中间。

该库的构建方式使其既可以作为查看器,也可以作为Web 建模器

使用查看器将BPMN 2.0 嵌入到应用程序中,并通过系统数据丰富查看器。使用Modeler 在您的应用程序中创建BPMN 2.0 图表。

diagram-js 和bpmn-moddle

在BPMN 2.0中,bpmn-js主要依赖两个库:diagram-js和bpmn-moddle。

bpmn.js 构建在两个库diagram-js 和bpmn-moddle 之上。 Diagram-js 用于绘制形状和连接。它为我们提供了与这些图形元素交互的方法,以及帮助用户构建强大的BPMN 查看器的辅助工具。对于建模,它提供了上下文、调色板和重做/撤消等功能。 bpmn-moddle 它允许我们读写符合BPMN 2.0 模式的XML 文档,并访问图表上绘制的形状和连接背后的BPMN 相关信息。在这两个相关库之上,bpmn-js 定义了BPMN 的细节,例如外观、建模规则和工具(调色板)等。

diagram-js(图表交互/建模)

BPMNJS 简介

模块系统:在底层,diagram-js 使用依赖注入来连接和发现图表组件。当在diagram-js上下文中讨论模块时,我们指的是提供命名服务及其实现的单元。 “服务”是可以使用其他服务在图表上下文中执行操作的函数或实例。

Canvas - 提供用于添加和删除图形元素的API;处理元素生命周期并提供用于缩放和滚动的API。 EventBus - 管理监听事件的事件总线模块,感兴趣的各方可以订阅各种事件并在事件发出后对其采取行动。事件总线帮助我们解耦关注点并模块化功能,以便新功能可以轻松地挂接到现有行为中。 ElementFactory - 用于基于diagram-js 的内部数据模型创建形状和连接的工厂。 ElementRegistry - 了解添加到图表中的所有元素,并提供API 来通过id 检索元素及其图形表示。 GraphicsFactory - 负责创建形状和连接的图形表示。实际的外观和感觉是由渲染器定义的,即绘图模块内的DefaultRender。 graph-js还提供了一些辅助工具箱:

CommandStack - 负责建模期间的重做和撤消。 ContextPad - 提供元素周围的上下文操作。叠加- 提供用于将附加信息附加到图表元素的API。 Modeling-提供APIPalette用于更新画布上的元素(移动、删除)-左右工具面板以及一些可扩展的辅助工具;

bpmn-moddle

bpmn-moddle 封装了BPMN 2.0 模型,提供读写BPMN 2.0 XML 文档的Tool。导入时将XML 文档解析为JavaScript 对象树,建模时编辑和验证树,然后在保存图表时将其导出到BPMN 2.0 XML 协议文件。

bpmn-moddle 添加了BPMN 2.0 规范作为元模型,并为BPMN 2.0 模式验证提供了简单的接口,并提供了以下API:

formXML - 从给定的XML 字符串创建BPMN 树toXML - 将BPMN 对象树写入BPMN 2.0 XML

下一步

通过vue3、antdesign vue 结合bpmn 构建自己的流程设计工具。

用户评论

坠入深海i

这个BPMNJS看起来功能挺全面的,刚入门流程设计,感觉这个工具能帮我快速上手。

    有17位网友表示赞同!

*巴黎铁塔

刚刚试用了一下BPMNJS,界面挺简洁的,不过对于小白来说,一开始可能会有些不适应。

    有5位网友表示赞同!

凉城°

看了BPMNJS的介绍,感觉这个工具挺强大的,希望能有详细的教程来学习。

    有13位网友表示赞同!

抚笙

BPMNJS这个名字有点复杂,不过从介绍来看,应该是个不错的流程图绘制工具。

    有17位网友表示赞同!

巷雨优美回忆

刚看了BPMNJS的简介,感觉有点复杂,不知道能不能熟练掌握。

    有11位网友表示赞同!

失心疯i

BPMNJS这个名字挺有意思的,不过我还是更喜欢用Visio来做流程图。

    有16位网友表示赞同!

凉笙墨染

看了BPMNJS的介绍,感觉功能挺全面的,但是不知道稳定性怎么样。

    有20位网友表示赞同!

清原

BPMNJS听起来很专业,不过我更倾向于使用图形化的工具来设计流程。

    有20位网友表示赞同!

代价是折磨╳

对BPMNJS很感兴趣,但是担心学习成本太高,不知道有没有适合新手的教程。

    有15位网友表示赞同!

有些人,只适合好奇~

感觉BPMNJS的界面设计得挺漂亮的,但是操作起来可能会有些复杂。

    有15位网友表示赞同!

烬陌袅

作为一个项目经理,我觉得BPMNJS可能会是提高工作效率的好帮手。

    有7位网友表示赞同!

无望的后半生

刚刚试用了一下BPMNJS,发现流程设计得挺灵活的,但是对一些细节功能不太清楚。

    有20位网友表示赞同!

月下独酌

BPMNJS的介绍里提到了云服务,这对团队协作来说是个很大的优势。

    有15位网友表示赞同!

败类

我对BPMNJS的实时协作功能很感兴趣,但是不知道多人协作时的稳定性如何。

    有15位网友表示赞同!

﹏櫻之舞﹏

看了BPMNJS的介绍,感觉这个工具挺适合大型项目的,但是对个人用户来说可能有点贵。

    有13位网友表示赞同!

断秋风

BPMNJS的兼容性怎么样?我担心在老旧的系统上可能会出现问题。

    有7位网友表示赞同!

微信名字

感觉BPMNJS的社区挺活跃的,希望可以找到更多关于它的学习资源。

    有14位网友表示赞同!

情字何解ヘ

虽然BPMNJS看起来功能强大,但我还是更喜欢使用一些轻量级的流程设计工具。

    有8位网友表示赞同!

清羽墨安

作为一个设计者,我对BPMNJS的图形化编辑功能很期待,希望实际使用起来也能满足需求。

    有10位网友表示赞同!