开源工作流设计器(流程设计器)哪个好

news/2024/11/15 6:14:35/文章来源:https://www.cnblogs.com/hibpm/p/18302390

大家在开发OA办公自动化、ERP、CRM、BPM、低代码平台等项目的时候,经常用到流程引擎,目前主流的开源流程引擎有activiti、flowable、camunda。这几个开源的流程引擎均基于BPMN2.0国际规范标准,其功能均比较强大,接口也很丰富。但涉及到人机交互界面大部分都需要定制开发,开源工作流引擎默认界面都不太适合中国项目使用要求。首先需要了解一下BPMN2.0规范是什么,见下图,更详细的了解请百度“BPMN2.0模型规范标准”之类的关键词。

02-bpmn2模型

本文重点介绍,基于activiti、flowable、camunda开源工作流引擎,如何选择一个开源免费的流程设计器,进行集成和扩展开发,快速交付项目使用。

一、流程设计器开源组件bpmn-js

bpmn-js 是 BPMN 2.0 渲染工具包和 Web 模型。bpmn-js 正在努力成为 Camunda BPM 的一部分。bpmn-js 使用 Web 建模工具可以很方便的构建 BPMN 图表,可以把 BPMN 图表嵌入到你的项目中,容易扩展。bpmn-js是基于原生js开发,支持集成到vue、react等开源框架中,集成起来也比较简单,而且与activiti、flowable、camunda开源工作流引擎无缝集成。使用bpmn-js也有缺点,由于bpmn-js底层依赖了画图工具diagram-js 和bpmn模型解析组件bpmn-moddle ,这两个开源组件的源代码比较复杂,一般前端开发人员很难搞定,功能和样式扩展修改比较费劲。

官方网站:https://bpmn.io/

在线体验:http://www.yunchengxc.com

源码解读:https://juejin.cn/post/7117481147277246500

01-bpmn.js流程设计器

建议:专业的BPM项目选择bpmn-js流程设计器,因为bpmn-js包含了全部BPMN 2.0的元素配置,设计的流程图可以很复杂,尤其是流程事件和协作,非钉钉流程设计器或OA类工作流设计器可取代,比如下面这个基于事件的招聘面试流程。

03-使用流程事件的例子

二、仿钉钉流程设计器

阿里钉钉作为中国协同办公的主流平台,其中表单设计器和流程设计器的功能及交互风格,对国内的企业和用户影响很大,一部分专业的低代码平台/BPM厂商也推出了仿钉钉版流程设计器,也有一部分客户提出流程设计器要改造程钉钉类的。在开源社区里也有vue和react版本的仿钉钉流程设计器框架。

仿钉钉版流程设计器不能与activiti、flowable、camunda等开源流程引擎无法集成,因为钉钉版流程设计器生成的模型不是bpmn2.0标准规范,需要中间做转化才可以,转化可以是前端JS处理,也可以是后端Java处理,大部分公司是基于BPMN模型的工具类在Java后端进行处理的,这个处理相当于做一个适配器,把A模型转化成B模型,其工作量不小,而且复杂的模型转化很容易出错。

04-仿钉钉流程设计器

开源地址:https://github.com/StavinLi/Workflow-Vue3

在线体验:https://stavinli.github.io/Workflow-Vue3/dist/index.html#/

建议:钉钉流程设计器尤其明显的优点和缺点。优点是更符合业务人员操作习惯,使用起来比较容易理解,更适合简单的人工审批流程,缺点是不能设计复杂的BPMN流程。如果系统的定位是简单的办公类需求,仿钉钉流程设计器是可取的,反之需要谨慎考虑。

三、基于G6的流程设计器

Antv G6本是阿里Antv团队开源的一个可视化图形框架。G6 是一个简单、易用、完备的图可视化引擎,它在高定制能力的基础上,提供了一系列设计优雅、便于使用的图可视化解决方案。能帮助开发者搭建属于自己的图可视化、图分析、或图编辑器应用。G6是绘图方面也是可以选择的,可以使用 canvas 或 svg 渲染,默认是Canvas,在可视化及交互方面,G6是比较突出的,比jsplumb 更好用。

开源地址:https://github.com/guozhaolong/wfd-vue

体验地址:https://guozhaolong.github.io/wfd-vue/

05-g6版本流程设计器

建议:bpmn-js 版流程设计器太专业太复杂,仿钉钉流程设计器太简单使用场景太局限,有没有折中的方案?选择一个好的图画工具自行开发流程设计器,即选择Antv G6开源框架开发流程设计器就是好的方案,优点是画图功能比较强大,可按业务需求灵活定制。缺点是Antv G6的生成的流程图模型与bpmn2.0模型不一致,也需要自己开发适配器进行模块转换。

四、其它开源流程设计器

还有其它开源版流程设计器,这里不作重点介绍,感兴趣的读者请自行研究。

https://gitee.com/zhangyeping/vue-flow-design-plus

https://site.logic-flow.cn/docs/#/

https://site.logic-flow.cn/examples/#/gallery

https://jsplumbtoolkit.com/

https://gitee.com/gfqy/zsflow-editor

https://gitee.com/xiaoka2017/easy-flow

https://gitee.com/shenzhanwang/RuoYi-activiti

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/743933.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何设计应用系统的数据权限管理

在开发应用系统时,都离不开权限的设计,权限设计 = 功能权限 + 数据权限。而功能权限,在业界常常是基于RBAC(Role-Based Access Control)的一套方案。而数据权限,则根据不同的业务场景,则权限设计不尽相同,可以有不同的技术解决方案。按照应用系统权限类型划分,可进一步…

【进阶篇】一文搞清楚网页发起 HTTP 请求调用的完整过程

最近笔者在实际项目开发中会频繁涉及到服务之间的远程调用、域名的配置和请求的转发等与计算机网络相关的知识。这些其实在读本科和考研的时候都有学习过理论,但为了更透彻地掌握便于在工作中使用,我还是决定写一篇文章来分享实际开发中是怎么应用的。目录前言一、HTTP协议1.…

C++11标准库 原子变量 atomic 梳理

目录<atomic>原子操作的概念CAS实现原理CAS操作的伪代码:使用CAS完成变量的原子操作:CAS 操作的保证lock和锁的概念atomic模板类构造函数公共成员函数:atomic与互斥锁的效率比对 <atomic> C++11提供了一个原子类型std::atomic,通过这个原子类型管理的内部变量就可…

使用ML.NET训练一个属于自己的图像分类模型,对图像进行分类就这么简单!

前言 今天大姚给大家分享一个.NET开源、免费、跨平台(支持Windows、Linux、macOS多个操作系统)的机器学习框架:ML.NET。并且本文将会带你快速使用ML.NET训练一个属于自己的图像分类模型,对图像进行分类。ML.NET框架介绍 ML.NET 允许开发人员在其 .NET 应用程序中轻松构建、…

网页交互

单击 选择元素 (html)<!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title&g…

读人工智能全传13人工智能导致的问题2

读人工智能全传13人工智能导致的问题21. 机器人sha手 1.1. 自主57的话题总是带有强烈的煽动性,许多人会本能地厌恶它,认为这样的系统是不道德的,永远不该被建立 1.2. 自主57的讨论大多源于战争中使用得越来越频繁的无人机 1.3. 无人机 1.3.1. 人驾驶的飞机,在菌用领域,它可…

万字:清结算体系,全局方案深度解析

本文分享了头部支付机构是如何做清结算的,在做和带领大家打通支付的底层处理原理,内核中的内核,分享给大家。支付机构帮助交易平台代收代付交易款,那么就需要先从消费者发卡行把钱拿过来,然后再结算给交易平台;对于交易平台也是一样的道理,要帮店家卖东西,需要帮忙通过…

【THM】tomghost练习

先努力成为脚本小子【THM】tomghost练习 与本文相关的TryHackMe实验房间链接:TryHackMe | Room details 简介:识别最近的漏洞,以尝试利用系统或读取你没有权限访问的文件。 **你能完成这个挑战吗? **机器可能需要长达5分钟的启动和配置。 管理员记录:这个房间的用户名包含不…

电动自行车 LED 大灯不亮故障分析和维修教程 All In One

电动自行车 LED 大灯不亮故障分析和维修教程 All In One 电动自行车内置的 LED 前大灯,在骑行途中突然不亮了 ❌电动自行车 LED 大灯不亮故障分析和维修教程 All In One自己动手,丰衣足食问题表象 电动自行车内置的 LED 前大灯,在骑行途中突然不亮了 ❌故障排查转向灯正常 行…

边缘计算是什么?为什么边缘计算平台如此重要?

边缘计算是一种在物联网设备、传感器、嵌入式设备等边缘节点上进行数据处理、分析和存储的计算模式。边缘计算利用设备本身的计算能力,将处理和存储任务从中央云端转移到边缘设备上。这样可以减少数据传输的延迟和网络拥塞,并提高数据隐私和安全性。而边缘计算平台之所以如此…

《《《maven仓库下载jar包

地址:Maven Repository: Search/Browse/Explore (mvnrepository.com) 1.搜索需要的jar包,下面以 easyExcel 为例 2.每天多努力一点,你将会变得更好。

Go语言基于go module方式管理包(package)

目录一.Go Modules发展史1 前言2 早期第三方包存储在GOPATH路径3 vendor阶段4 社区管理工具层出不穷5 go modules官宣官方管理工具二.go module介绍1 GO111MODULE环境变量2 GOPROXY3 GOSUMDB4 GONOPROXY/GONOSUMDB/GOPRIVATE5 go.mod文件6 go.sum文件7 依赖保存位置三. 3.go …