文章目录

  • 一、开源版本和pro版本的区别
  • 1、功能比较
  • 2、更改规则如何生效
  • 二、如何使用开源版本
  • 1、使用指南地址
  • 2、运行规则引擎服务
  • 3、使用步骤
  • 3.1创建项目
  • 3.2创建变量库
  • 3.3创建决策集或决策树
  • 3.4测试知识包
  • 3.5代码调用



因为工作上遇到了urule开源版本规则引擎,所以在这里 介绍一下自己是如何使用的

一、开源版本和pro版本的区别

1、功能比较

这里是免费版本2.0和pro3.0的功能比较:

URULE PRO版与开源版主要功能比较

特性

URULE PRO版

URULE开源版

向导式决策集



脚本式决策集



决策树



决策流



决策表



交叉决策表



复杂评分卡



文件名、项目名重构



参数名、变量常量名重构



Excel决策表导入



规则集模版保存与加载



中文项目名和文件名支持



服务器推送知识包到客户端功能的支持



知识包优化与压缩的支持



客户端服务器模式下大知识包的推拉支持



规则集中执行组的支持



规则流中所有节点向导式条件与动作配置的支持



循环规则多循环单元支持



循环规则中无条件执行的支持



导入项目自动重命名功能



规则树构建优化



对象查找索引支持



规则树中短路计算的支持



规则条件冗余计算缓存支持



基于方案的批量场景测试功能



知识包调用监控



更为完善的文件读写权限控制



知识包版本控制



SpringBean及Java类的热部署



技术支持



2、更改规则如何生效

免费版本:修改后重启后端服务

二、如何使用开源版本

1、使用指南地址

1.简介 · URule规则引擎使用指南 (bstek.com)

2、运行规则引擎服务

模块结构如下:

drools规则引擎 架构 规则引擎配置页面_中间件

其中toplink-rule-server为服务端,toplink-admin为客户端;修改toplink-rule-server里面resources里application.properties数据库配置,在数据库创建空的库。urule会自动创建表

drools规则引擎 架构 规则引擎配置页面_实体类_02

运行toplink-rule-server的ToplinkRuleServerApplication启动类

打开浏览器访问 http://localhost:8090/urule/ frame,如下图

drools规则引擎 架构 规则引擎配置页面_规则引擎_03

这时server端已经成功运行!

3、使用步骤

3.1创建项目

鼠标右键项目列表,点击创建新项目,输入项目名称(项目名称自己定义)

drools规则引擎 架构 规则引擎配置页面_中间件_04

drools规则引擎 架构 规则引擎配置页面_中间件_05

3.2创建变量库

变量库对应的是代码中的一个个实体,例如添加一个customer的变量库(变量库名自己定义),代码中应该有一个customer的实体类。

drools规则引擎 架构 规则引擎配置页面_drools规则引擎 架构_06

drools规则引擎 架构 规则引擎配置页面_规则引擎_07

drools规则引擎 架构 规则引擎配置页面_规则引擎_08

drools规则引擎 架构 规则引擎配置页面_drools规则引擎 架构_09

上图中2.输入名称(自定义,例如:可以是会员类)3.输入类的全限定包名就是相关实体类的包名,例如:可以输入customer的全包名,用来后续测试会员相关规则的测试。4.点击生成后,右端就会出现对应的实体类的字段(属性)

drools规则引擎 架构 规则引擎配置页面_规则引擎_10

drools规则引擎 架构 规则引擎配置页面_实体类_11

最后点击保存!变量库就已经成功创建!

3.3创建决策集或决策树

这里以创建决策集为例,决策集就是规则的集合,用来添加一条条的规则。

drools规则引擎 架构 规则引擎配置页面_中间件_12

名称自定义,例如:customer

创建之后先添加变量库,这样就可以获取相关实体类的属性了,点击添加,选择对应的变量库,这里我们可以添加刚刚创建的customer变量库,后面添加规则的时候就可以获取会员类的属性了。

drools规则引擎 架构 规则引擎配置页面_中间件_13

drools规则引擎 架构 规则引擎配置页面_实体类_14

这样就已经成功添加了。

然后开始添加规则:

drools规则引擎 架构 规则引擎配置页面_中间件_15

drools规则引擎 架构 规则引擎配置页面_drools规则引擎 架构_16

这里可以选择会员类的年龄

drools规则引擎 架构 规则引擎配置页面_规则引擎_17

这里可以选择选择大于

drools规则引擎 架构 规则引擎配置页面_规则引擎_18

然后选择输入值

drools规则引擎 架构 规则引擎配置页面_实体类_19

比如这里输入18

drools规则引擎 架构 规则引擎配置页面_实体类_20

比如我们可以再添加条件:会员类的等级大于3

drools规则引擎 架构 规则引擎配置页面_java_21

然后添加那么后面的动作,选择变量赋值,操作和上面的一样

drools规则引擎 架构 规则引擎配置页面_中间件_22

然后添加否则的动作,和上面一样,如:我们添加那么会员类的名称为黄金会员否则为普通会员

drools规则引擎 架构 规则引擎配置页面_drools规则引擎 架构_23

点击保存!规则定义成功!

补充变量后面可以添加加减乘除除余操作

drools规则引擎 架构 规则引擎配置页面_实体类_24

3.4测试知识包

可以通过添加知识包对相应的规则进行测试

添加知识包

(包id和包名称自定义)

drools规则引擎 架构 规则引擎配置页面_规则引擎_25

添加之后选择该包,再点击添加文件

drools规则引擎 架构 规则引擎配置页面_实体类_26

名称自定义,资源文件路径可以选择刚刚添加的customer的决策集,版本号会自动生成的。

drools规则引擎 架构 规则引擎配置页面_java_27

点击保存!知识包创建完成!

这是可以进行仿真测试,点击仿真测试,输入年龄和等级,点击测试决策包

drools规则引擎 架构 规则引擎配置页面_规则引擎_28

输入测试的年龄和等级后点击测试决策包,就可以对相应规则进行测试了,例如:我们输入年龄20,等级5就可以得到会员的名称为黄金会员了。

drools规则引擎 架构 规则引擎配置页面_实体类_29

3.5代码调用

客户端的规则实现,例如:接口:api/rule/test(包含实体类,规则引擎的项目名和测试包名)

这里就是用到的customer实体类,csad项目中的pur知识包

drools规则引擎 架构 规则引擎配置页面_中间件_30

运行toplink-admin的ToplinkApplication启动类

打开浏览器访问 http://localhost:8080/api/rule/test?age=20&level=5,如下图

drools规则引擎 架构 规则引擎配置页面_实体类_31