Drule 使用说明文档
文章目录
Drule业务规则可视化平台。基于Drools 封装的业务规则可视化平台,通过逻辑可视化结构(规则表达式/条件/结果动作)、零代码拖拽式编排及业务语义级模板库,实现规则开发效率显著提升,使非技术用户也能快速构建金融风控、智能营销等决策系统。具备优秀的执行性能,测试环境下单次执行耗时最高可达1ms内,90%不超过2ms。
项目源码地址:https://gitee.com/ahaow/rule_engine。
体验地址:http://ahaoweb.cn/drule/visual,账号:test,密码:123456。
⚠️ 当前系统还在迭代当中,功能有限,还请谅解。
1.页面结构
当前版本,主要包含四部分,左侧为规则内容目录,右侧分为规则调用,调用记录和规则配置。
2.规则内容目录
如下所示,用于展示规则内容的结构,目前分为3层,第1层为整个规则的名称,第2层为规则内部的分组,第3层为每个分组内部的规则块。该树形结构的第2,3层支持拖拽,同层次的节点只能拖拽至同层次,即不支持节点跨层次的修改。
⚠️ 支持右侧规则配置的内容联动。新增、修改(分组改变)、删除规则块都会触发该树形结构变化。
3.规则调用
-
左侧为请求体,必须为JSON格式。
-
右侧为返回的响应结果。
3.1.请求体
JSON格式,一个完整的示例入参对象的结构如下:
{
"name":"food",
"tag":"好吃",
"price":100.1,
"stock":10
}
编辑好请求体之后,即可点击右上角的执行按钮,右侧将会显示结果。
3.2.响应结果
返回的内容格式:
- 执行时间:yyyy-MM-dd HH:mm:ss.SSS。
- 总耗时:单位毫秒。
- 入参反序例化耗时:单位毫秒。
- 执行规则耗时:单位毫秒。
- 出参序列化耗时:单位毫秒。
- 命中规则:字符串数组。
- 出参结果:json字符串。
4.调用记录
每次在规则调用中执行规则成功后,会记录其调用信息,当前仅展示最近10条调用记录,如下所示。
点击查看操作,会将其记录的数据自动填充至规则调用中,以便于查看和重复测试,如下所示。
5.配置规则
交互式可视化规则逻辑块结构。通过页面上的配置(可视化编辑器)替代传统代码编写,显著降低技术门槛,简化了学习成本和开发成本,让非专业人员也能上手操作。
4.1.新增规则
点击之后,在规则配置的最下方会自动新增一个名称为test的规则块,内容如下。
4.2.提交保存
会将配置好的可视化结构转换为DRL文件内容并保存。当前版本仅支持编译为DRL文件内容,不支持保存功能,同时也支持对可视化结构进行正确性效验,如果提交成功将会返回编译后的文件内容,如下所示。
如果提交失败,会显示失败原因,如下所示。
4.3.规则名称
用于唯一标识规则块,在整个规则文件中唯一。
4.4.规则分组
用于给规则块分组,在同一个分组中的规则最多只能有一个被命中,位置越靠前的规则,其优先级越高。如下所示:
分组a中的规则有:[a-1, a-2, a-3],执行规则时,最多只能有一个规则被命中,也就是a-1或者a-2或者a-3,并且按照优先级,先判断a-1,如果a-1没命中,再判断a-2,如果a-2未命中,再判断a-3。
4.5.描述
用于说明该规则块。
4.6.条件
支持两层嵌套,所以暂且称为外层逻辑和内层逻辑。
4.6.1.外层逻辑
如下所示,该条件只存在外层逻辑判断,实际内容为: (商品价格 >= 0 并且 商品价格 <= 100 并且 商品库存量 <= 10)
。
4.6.2.内层逻辑
点击关联条件按钮,将会出现内层逻辑的按钮。
如下所示,该条件存在内层逻辑,外层逻辑为并且(与),内层逻辑为或者(或),实际内容为:((商品价格 < 0 或者 商品价格 >= 1000) 并且 商品库存量 >= 0 并且 商品库存量 <= 10000 )
。
4.6.3.新增条件
点击新增条件,将会在条件最下方,新增一个外层条件。
4.7.结果
如下所示,命中该规则块的条件后,将会执行的结果内容。也就是给出参对象中属性赋值。