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。

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

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

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

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

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

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

脚本新增了一些元数据
脚本中现在也可以拿到循环下标了,在元数据里加入了loopIndex和loopObject2个属性。

可以通过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

文档更新时间: 2023-04-16 07:34   作者:admin