LiteFlow v2.10.2 发布!国产超好用的规则引擎框架

来源: 投稿
2023-04-12 07:59:00

LiteFlow介绍

LiteFlow是一个开源编排式规则引擎,能够让你的系统逻辑任意编排,可选用脚本书写逻辑,支持多达5种脚本语言,支持丰富的第三方存储的支持,所有的逻辑和规则均可热变更。设计系统和重构系统的神器。

LiteFlow是国内优秀的社区驱动型开源项目,开源2年多,目前已经被各大公司应用在核心系统上。特性以及支持度都非常好。

如果你是第一次知道这个项目,可以去官网或相关的主页进行了解:

项目官网:

https://liteflow.yomahub.com

gitee托管仓库:

https://gitee.com/dromara/liteFlow

github托管仓库:

https://github.com/dromara/liteflow

v2.10.2介绍

我们为每个迭代版本都定了一个版本特性。

LiteFlow 2.10.2的版本特性就是与或非表达式。

除此之外,我们还增强了一些内容,修复了社区提出的bug。一共5个issue,作为此次小版本迭代的组成部分。

与或非表达式

社区里一直有人反应,条件编排能否在EL上写表达式,例如a==5 && b>0这种。

其实编排EL语法一切的操作对象都是组件,所以EL编排语法不能像逻辑代码一样来写很多逻辑过程。

我一直建议逻辑过程,通过java代码或者脚本组件来完成。而脚本组件是可以热更新热替换的。更加灵活。

但是在实际应用中,的确有人需要在条件编排里判断多个条件,而每个条件又是互相独立的组件。那么按照以前的写法,你只能把多个条件的逻辑塞到一个组件里,返回统一的true或者false。

这次我们新增了组件编排层面的与或非表达式,就是ANDORNOT表达式。

用法为方法模式:AND(a, b, c)

可能有些社区里的同学会问,为什么不设计成a && b && c呢,或者是a AND b AND c呢。

我来解释一下,首先这种用法模式和之前的语法呼应,都是方法模式,其次操作符的模式就有点像逻辑了,而这里突出的是编排。再者操作符的模式的几个关键字都被底层占用了。

综上所述,所以延续了之前的EL表述方式。

具体文档在官网EL规则语法大章的与或非表达式小章中。

脚本新增了一些元数据

脚本中现在也可以拿到循环下标了,在元数据里加入了loopIndexloopObject2个属性。

可以通过_meta.loopIndex_meta.loopObject来获取到。

所有的脚本元数据可以参照官网的脚本组件大章中的与Java进行交互小章节。

选择表达式的增强和一些bug的修复

现在在选择编排语法上,之前tag属性只能添加到组件上,现在对任何的表达式后面都可以添加tag属性了。

在选择节点的返回上,更加灵活了。

具体见官网的常规组件大章中的选择组件小章节。

此次我们还另外修复了2个bug。

完整更新列表

特性 #I6RF8Y EL表达式里支持并或非操作符

https://gitee.com/dromara/liteFlow/issues/I6RF8Y

增强 #I6QOFJ groovy无法支持#循环下标获取获取,希望脚本可以支持获取循环下标

https://gitee.com/dromara/liteFlow/issues/I6QOFJ

增强 #I6RFOE LiteFlow能否在流程(表达式)添加类似tag字段的属性,提高选择组件的复用率呢?

https://gitee.com/dromara/liteFlow/issues/I6RFOE

修复 #I6TRT2 EL表达式里的//被过滤掉了

https://gitee.com/dromara/liteFlow/issues/I6TRT2

修复 #I6URNQ 在CATCH表达中写单独的组件,SLOT中会拿不到异常

https://gitee.com/dromara/liteFlow/issues/I6URNQ

支持和赞助LiteFlow

开源一个项目并坚持2年并不容易,所以我也需要一点赞助来给自己充能,如果各位对LiteFlow这个项目有信心并且愿意支持我的的话,可以在官网首先点击给LiteFlow发电按钮。

但不管你是否选择赞助,我仍然会在社区里尽可能的解决你们的问题。

如何加群

LiteFlow的社区群已经有大约2500人以上了。你有任何问题,都可以在群里问。

关于加群的方式,请参考:https://liteflow.yomahub.com/pages/73c2c3/

展开阅读全文
点击加入讨论🔥(2) 发布并加入讨论🔥
2 评论
9 收藏
分享
返回顶部
顶部