工作流引擎 Warm Flow 加入 Dromara 开源社区
作者介绍
-
名称:warm
-
dromara 开源组织成员,dromara/warm-flow作者
-
研发工程师、技术经理,工作经验8年。此工作流已经持续开发有一年有余。
-
微信:warm-houhou;qq群:778470567
历史背景
flowable和activities确实大而全,但是这样对一般的项目会是好事吗?能早点下班吗
-
学习曲线: 对于初学者来说,学习可能需要一定的时间和精力。理解其概念、API 和配置可能需要一些耐心和实践。
-
复杂性: 对于简单的工作流程来说,引入可能会显得过于复杂。在某些情况下,使用简单的解决方案可能更合适。
-
定制化需求: 在一些特殊场景下,可能需要对进行定制化开发,以满足特定的需求。这可能需要深入理解其内部工作原理和源代码。
-
版本更新: 随着时间的推移,会发布新的版本,其中可能包含功能改进、bug 修复等。升级到新版本可能需要投入一定的时间和资源,以确保平稳过渡和兼容性。
-
阅读难度: 全英文注释,对于英文不好的人来说,确实有门槛。
那何不开发属于国人的工作流呢,为此耗时一年时间自研warm-flow工作流。
warm-flow能给你带来什么
国产自研工作流,其特点简洁(只有6张表)但又不简单,五脏俱全,组件独立,可扩展,可满足中小项目的组件。
-
支持常规的流程流转,比如跳转、回退、审批和任意跳转
-
支持转办、终止,任务最终回到发起人
-
支持或签(会签和票签开发中)
-
业务项目可不依赖流程设计器,组件可生成流程图片
-
支持角色、部门和用户等权限配置
-
支持监听器,参数传递,动态权限
-
支持多租户
-
支持互斥网关,并行网关
-
支持条件表达式,可扩展
-
支持不同orm框架和数据库扩展
-
同时支持spring和solon
-
兼容java8、java17及以上版本,理论11也可以
-
官方提供简单流程封装demo项目,很实用
接入warm-flow后妈妈再也不用担心我加班了
项目功能模块
流程流转管理
流程流转就像是warm-flow的驾驶人。让办理流程像喝水一样简单的事情。
// 部署流程 public void deployFlow() throws Exception { defService.importXml(new FileInputStream("/xxx/leaveFlow-serial.xml")); } // 发布流程 public void publish() { defService.publish(1219285650587652096L); } // 开启流程 public void startFlow() { insService.start("2", getUser()); } // 跳转流程 public void skipFlow() { Instance instance = insService.skip(1232001238795685888L,getUser().skipType(SkipType.PASS.getKey()) .permissionFlag(Arrays.asList("role:1", "role:2"))); } //任意跳转 public void skipAnyNode() { Instance instance = taskService.skip(1219286332145274880L, getUser().skipType(SkipType.PASS.getKey()) .permissionFlag(Arrays.asList("role:1", "role:2")).nodeCode("4")); } // 终止流程 public void termination() { taskService.termination(1232001396254052352L, getUser()); }
流程图管理
流程图管理就像warm-flow的门面。作为工作流引擎,当然是可以能脱离流程设计器,独立使用的,那流程图片生成是必不可少的。warm-flow自研了流程图绘制,通过设计器获取坐标,进行绘制流程的进度和状态(当然业务系统可以不集成设计器,可在作者提供的demo项目中设计好导出xml,业务系统再次导入即可)。
监听器管理
监听器可以说是工作流引擎的上限,灵活度和可扩展性的核心人物
-
监听器类型
-
create:创建监听器,任务创建时执行
-
start:开始监听器,任务开始办理时执行
-
permission:权限监听器,办理任务动态设置权限
-
assignment: 分派办理人监听器,分派后执行
-
finish:结束监听器,当前任务完成后执行
-
-
监听器生命周期
配置管理
配置文件可以让工作流使用更加方便,如虎添翼。
-
配置文件目前支持banner图和填充器配置,后续还会增加多租户和软删除等。
# warm-flow工作流配置 warm-flow: # 是否显示banner图,默认是 banner: true #填充器(也通过代码防守注入) data-fill-handler-path: com.ruoyi.system.handle.CustomDataFillHandler
-
填充器也可通过代码方式注入
@Configuration public class WarmFlowConfig { @Bean public DataFillHandler dataFillHandler() { return new CustomDataFillHandler(); } }
扩展支持
orm和数据库扩展
作为新时代的程序员不能固步自封,只支持mybatis和msyql。所以目前已经解偶数据库操作,按照mybatis方式扩展其他的orm或者数据库类型即可
条件表达式扩展
工作流引擎想要灵活跳转,就得有相应表达式,满足不同的条件,执行不同的任务,目前支持,并且支持规则扩展
>, >=, <, <=, =, !=, like, not like

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
wlnmp 一键安装包更新 240426 (el9版本支持)
wlnmp 一键安装包 240426 更新内容如下: (新增)el9(9.x)系统版本支持,新增AlmaLinux9.x系统兼容。 (其它)经过了长期大量的适配、测试工作,首个el9(9.x)系统AlmaLinux9.x完成适配兼容。 软件版本与前期版本保持一致,对官方已停止维护更新的软件(如php5.6、php7.x等),在el9(9.x)系统中一样可用,但是出于安全考虑,还是建议大家使用稳定的版本。 安装升级与前期版本保持一致,主要区别,在安装、升级软件后,服务不会自动重启,需要手动启动服务。 启动停止与前期版本保持一致,同时支持/etc/init.d和systemctl两种管理方式,虽然官方不建议/etc/init.d这种方式,但兼顾用户体验,wlnmp依旧支持(因为/etc/init.d方便TAB命令补全)。 el9(9.x)软件包组做了多处优化,nginx、tengine默认依旧支持lua,但默认的waf脚本做了精简,仅提供了一个基础的防cc,用户可结合实际使用需求,自行添加其它的waf等。 注意,在el9(9.x)版本中,在添加epel源的基础上,还需要开启crb源(dnf...
- 下一篇
ShopXO 免费开源商城系统 v6.1 版本已发布
更新日志 1.【优化】公共加入购物车方法支持指定规格 2.【优化】动态数据列表外部调用处理数据优化 3.【优化】底层框架升级到thinkphp8,php版本支持8.0+ 4.【优化】公共url处理支持短地址参数处理 5.【优化】订单售后使用优惠情况下不自动退数量问题修复 6.【优化】公共参数去掉多余的参数 7.【优化】商城logo和底部备案信息支持可视化修改 8.【优化】首页轮播、用户中心导航、首页导航、快捷导航支持多选平台 9.【优化】用户端未登录访问页面权限错误修复 10.【新增】公共附件新增预览方法 11.【新增】web端商品搜索页新增价格滑条 12.【新增】智能工具箱插件支持商品批量上下架 13.【新增】魔方插件支持更多商品组合 14.【新增】批量下单插件web端新增table规格形式购买 15.【新增】支付宝小程序支持JSAPI支付 手机端效果图片展示 PC 效果图片展示 后台管理 效果图片展示 收银台
相关文章
文章评论
共有0条评论来说两句吧...