EasyRule规则引擎设计及使用说明

2026/4/27 6:26:24

4. 如何调用规则引擎

将规则引擎作为子模块加入的主业务系统后,主业务系统只需在程序里调用规则引擎的com.git.easyrule.service.RuleService类的runRule()和runModel()方法即可,规则引擎启动之后便根据自身的规则配置项对数据进行校验处理,处理结果将存入规则文件配置的指定表当中。

在调用RuleService类的runRule()和runModel()方法时需传入几个参数,以下表格是参数说明: 参数名 RuleID/ModelID paramMap Map

源方法代码:

参数对象 后台所有规则需要用到的变量集合 类型 中文说明 备注 数据校验规则文件 String 规则ID/规则模型ID

RuleService rs = new RuleService();

Map paramMap = new HashMap(); paramMap.put(\, \);

paramMap.put(\, \);

List msgList = rs.runModel(\ List msgList = rs.runRule(\

5 / 10

5. 配置使用说明

规则引擎的配置由三大部分组成:

1. 数据库配置:配置被检测的数据源。

2. 公式函数配置:系统所有的公式函数类由该配置文件管理。 3. 校验规则配置:系统所有的规则由该配置文件管理。

4. 校验规则模型配置:系统所有的规则校验模型由该配置文件管理。 5.1 数据库配置文件env.properties

规则引擎的数据配置既可以共用主业务系统的配置文件,也可以独立采用该文件对其

进行灵活配置,以下是具体的配置说明:

配置项 easyDriver easyUrl easyUsername easyPassword 中文说明 JDBC访问数据库的驱动 数据库路径 用户名 密码 备注 5.2 公式、函数配置文件ruleEngine_beans.xml

具体详细请参考本配置文件里的内容,本文件是标准的Spring配置文件。

5.3 数据校验规则文件ruleEngine_rules.xml

1. rule节点:对表数据的纵向校验以及逻辑校验。

节点 rule 属性 id name checktype 含义 规则ID 规则名称 检测的公式 备注 1.该ID应与 ruleEngine_beans.xml 配置的ID保持一致。 2.公式可以有多个,以“-”符号分隔。 startValue endValue checkedFieldName errCode errMsg targetDataList checkLevel sql

范围顶值 范围底值 被检测的值 错误码 错误信息 比对值 检查级别 可以有多个,以”;”符分隔 1:info;2:warn;3:err 通过该SQL语句获取结果集,SQL可以有变量以@开头

6 / 10

示例:

select count(loan_id) v1,nvl(max(loan_length),0) v2 from TB_LON_LOAN where CLOSE_FLAG = '0' and LOAN_LEVEL_FIVE_CLASS in ('3','4','5') and CUS_ID = @cusId select count(loan_id) v3 from TB_LON_LOAN_APPLICATION where CUS_ID = @cusId

示例说明:规则引擎执行“R0002”规则的顺序如下:

1. 规则引擎获取SQL节点的语句,如果该SQL语句有变量,规则引擎根据将预

设的变量值赋给SQL语句组成一个可以执行的字符串,并通过该字符串到数据库查出符合条件的结果集。如果结果集没有数据将不执行本节点的所有规则。

2. 如果结果集有数据,规则引擎先执行R0001规则:获取结果集中的v1,v2,v3

字段对应的值,并将这三个变量值作为参数执行checkedFieldName设置的函数,计算出的结果作为此规则的被检测值传入checktype节点定义的所有公式中,greater公式将该值和startValue配置的值进行是否大于运算,如果返回true继续执行下一个公式,如果返回false,该规则直接不通过。

5.4 数据校验规则模型文件ruleEngine_models.xml

本文件的配置节点由两部分组成,规则引擎根据不同节点进行相应的规则校验:

1、model节点:提供负责的逻辑模型校验。 节点 model 属性 id name isIgnore 含义 规则模型ID 备注 规则模型名称 是否忽略错误 1. true:忽略规则模型中的规则错误 2. false:不忽略规则模型中的规则错误 当模型配置为true(忽略错误)时,模型中的所有规则都会执行,最后将返回所有错误规则的检查结果集合; 当模型配置为false(不忽略错误)时,模型中只要有一条规则不符合规则,就会停止检查,返回该条规则的错误信息。 rule 配置模型中包含的规则ID

2、rule节点:对表数据的纵向校验以及逻辑校验。

7 / 10

节点 rule 属性 id name checktype 含义 规则ID 规则名称 检测的公式 备注 1.该ID应与 ruleEngine_beans.xml 配置的ID保持一致。 2.公式可以有多个,以“-”符号分隔。 startValue 范围顶值 如果是sql查询的结果以$开头,如果是外部传入则以@开头。 endValue 范围底值 如果是sql查询的结果以$开头,如果是外部传入则以@开头。 checkedFieldName 被检测的值 如果是sql查询的结果以$开头,如果是外部传入则以@开头。 errCode errMsg targetDataList checkLevel sql 错误码 错误信息 比对值 检查级别 可以包含规则参数,参数名与规则内的参数名一致即可。 可以有多个,以”;”符分隔 1:info;2:warn;3:err 通过该SQL语句获取的结果可以作为规则的参数,以$开头,SQL可以有变量以@开头,通过外部传入。

6. 引擎现有的公式、函数

1. 公式

公式名 eqs ineqs eqn ineqn greater less ge le isnum notnum isint idvalid

说明 判断字符串是否相等 判断字符串是否不相等 判断数字是否相等 判断数字是否不相等 大于 小于 大于等于 小于等于 判断是数字 判断不是数字 判断是整数 判断身份证合法

是否已经支持 是 是 是 是 是 是 是 是 是 是 是 是 8 / 10


EasyRule规则引擎设计及使用说明.doc 将本文的Word文档下载到电脑
搜索更多关于: EasyRule规则引擎设计及使用说明 的文档
相关推荐
相关阅读
× 游客快捷下载通道(下载后可以自由复制和排版)

下载本文档需要支付 10

支付方式:

开通VIP包月会员 特价:29元/月

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:xuecool-com QQ:370150219