搭建好规则引擎之后会在数据库中自动生成相应的表,表中记录相应的页面规则等的配置信息
项目名 包名 ----在界面中需要配置,到时Java代码中调用的时候需要用--作为id
资源包:
变量库:1,事实待走规则的参数对象
2,接收结果的对象 ---jave中都需要insert到workmemory中 其中接收结果对象和不同的参数需要放入map中
常量库:描述结果的以文字展现,代替值
动作库:用于复杂校验规则的自定义方法 这个类需要@Component 方法需要 @ExposeAction("身份证校验")
参数: 用于和规则结果比较看是否符合参数的值,例如 参数=通过的验证结果 就走通过的分支,参数也在map传入
决策集:
所有规则的集合,在这里加载好之前定义的变量库,常量库,动作库,参数 所以后面在决策集中可以使用
Java调用示例:
@RequestMapping(value = "testRule",method = RequestMethod.GET)
public JSONObject testRule() throws Exception{
JSONObject returnObj = new JSONObject();
returnObj.put("success", true);
ApprovalParam ap = new ApprovalParam();
ap.setAge(35);
try{
java.text.SimpleDateFormat format = new java.text.SimpleDateFormat("yyyy-MM-dd");
Date beginDate = format.parse("2017-10-10");
ap.setCertEffectiveEndDate(beginDate);
}catch (Exception e){
}
ap.setCertNo("222");
ap.setCompensatoryAmount(new BigDecimal("1"));
ap.setCreditReportDays(22);
ap.setHasBadDebt(false);
ap.setHasOverDueHalfPeriodsOf2Years(false);
ap.setMaxOverDueDaysOf2Years(100);
ap.setTotalOverDuePeriodsOf2Years(9);
ApprovalRes ar = new ApprovalRes();
ar.setAge("1");
List<ApprovalRes> ars = new ArrayList<ApprovalRes>();
ars.add(ar);
ap.setGoal(ars);
Map<String,Object> parameters = new HashMap<String,Object>();
parameters.put("flag","1");
// parameters.put("ApprovalRes",ar);
parameters.put("approvalRes",ar);
RuleEngineExecuter ruleEngineExecuter = new RuleEngineManager("myUrule","test").createExecuter();
ruleEngineExecuter.insert(ar);-------------------进入workmemory
ruleEngineExecuter.fireRules(ap,parameters);-------------------进入workmemory
TApprovalRuleRes re= new TApprovalRuleRes();
Class cls = ar.getClass();
Field[] fields = cls.getDeclaredFields();
for(int i=0; i<fields.length; i++){
re= new TApprovalRuleRes();
Field f = fields[i];
f.setAccessible(true);
System.out.println("属性名:" + f.getName() + " 属性值:" + f.get(ar));
new TApprovalRuleRes();
re.setApplyNo("tst001");
re.setRuleCode(f.getName());
re.setStatus(f.get(ar)+"");
boolean fieldHasAnno = f.isAnnotationPresent(Label.class);
if(fieldHasAnno){
Label fieldAnno = f.getAnnotation(Label.class);
re.setRuleName(fieldAnno.value());--------反射获取属性注解的值
}
tApprovalRuleResService.insert(re);
}
re= new TApprovalRuleRes();
re.setApplyNo("tst001");
tApprovalRuleResService.selectAll(re);
return returnObj;
}
<dependency>
<groupId>com.bstek.urule</groupId>
<artifactId>urule-console</artifactId>
<version>2.1.6</version>
</dependency>
注意:
urule如果之前是用一个默认comoanyid=bstek制作的导出文件,后面文件中改了这个之后成为houbank,再导入进去是看不到的,除非java中把默认的也改成文件一致的houbank
改后的导出文件:
<sv:value>houbank</sv:value></sv:property><sv:property sv:name="_create_date" sv:type="Date"><sv:value>2018-10-15T15:13:22.655+08:00</sv:value>
</sv:property><sv:property sv:name="_create_user" sv:type="String"><sv:value>admin</sv:value></sv:property><sv:property sv:name="_file" sv:type="Boolean">
<sv:value>true</sv:value></sv:property>
复写默认的Java:
package com.houbank.bank.facade.urule;
import java.util.ArrayList;
import java.util.List;
import org.springframework.stereotype.Component;
import com.bstek.urule.console.DefaultUser;
import com.bstek.urule.console.EnvironmentProvider;
import com.bstek.urule.console.User;
import com.bstek.urule.console.servlet.RequestContext;
@Component
public class AuthEnvironmentProvider implements EnvironmentProvider {
@Override
public User getLoginUser(RequestContext requestContext) {
DefaultUser user=new DefaultUser();
user.setCompanyId("houbank");
user.setUsername("admin");
user.setAdmin(true);
return user;
}
@Override
public List<User> getUsers() {
// DefaultUser user1=new DefaultUser();
// user1.setCompanyId("houbank");
// user1.setUsername("hu");
// DefaultUser user2=new DefaultUser();
// user2.setCompanyId("houbank");
// user2.setUsername("ding");
// DefaultUser user3=new DefaultUser();
// user3.setCompanyId("houbank");
// user3.setUsername("wang");
List<User> users=new ArrayList<User>();
// users.add(user1);
// users.add(user2);
// users.add(user3);
return users;
}
}
相关推荐
URule Pro是一款强大的规则引擎,它分为设计器和执行引擎两大部分。设计器主要包含库文件设计器和规则文件设计器,用于构建和预览业务规则。库文件设计器由四个组件组成:变量库设计器、参数库设计器、常量库设计器...
**URule规则引擎详解** URule是由国内知名软件企业开发的一款强大的业务规则管理系统,它旨在帮助企业快速构建灵活、可扩展的业务规则应用。...在项目中正确配置和使用这些JAR包,是充分利用URule规则引擎的关键。
可视化规则引擎是一种图形化界面工具,允许用户通过拖拽组件和设定条件逻辑,直观地创建、编辑和管理复杂的业务规则和决策流程,而无需编码。有以下几个核心特点: 1. 图形化界面:提供用户友好的界面,用户可以直接...
通过使用URule,开发者能够以声明式的方式定义业务规则,无需深入编写代码,降低了业务规则变更带来的系统影响。 URule提供了多种规则设计工具,包括规则集、决策表、交叉决策表(决策矩阵)、决策树、评分卡、复杂...
另一方面,URule是一款强大的业务规则引擎,它允许业务人员通过图形化的方式定义和管理业务规则,无需依赖技术人员,从而实现业务规则的快速迭代和灵活调整。 "Spring cloud和规则引擎urule整合代码"这个项目,显然...
URule是一款由Bstek自主研发基于RETE算法的规则引擎产品,提供了向导式决策集、脚本式决策集、决策表、决策树、评分卡及决策流六种类型的规则表现方式,采用基于WEB的可视化设计器,当前就是URule控制台的JS源码项目...
URULE是一款基于RETE算法的纯Java规则引擎,提供规则集、决策表、决策树、评分卡,规则流等各
当业务部门需要调整优惠券使用规则时,只需要修改规则引擎中的配置,而无需更改应用程序代码。 ##### 2.5 技术优势 - **灵活性**:规则引擎使得业务规则可以在不修改代码的情况下进行变更,大大提高了系统的灵活性...
该项目是URULE规则引擎的源码,采用Java语言开发,辅以JavaScript、HTML、CSS等前端技术,共计906个文件。其中Java源文件553个,JavaScript文件169个,HTML文件20个,CSS文件18个。URULE基于RETE算法,提供规则集、...
URule是一种纯Java规则引擎,它以RETE算法为基础,提供向导式规则集,脚本式规则集,决策表,交叉决策表(PRO版提供),决策树,评分卡及决策流共六种类型的规则定义方式,配合基于WEB的设计器,可快速实现规则的...
提供规则集、决策表、决策树、评分卡,规则流等各种规则表现工具及基于网页的可视化设计器,可快速开发出各种复杂业务规则。 开发工具在软件开发生命周期中扮演着至关重要的角色,它们旨在简化和加速从概念设计到...
"urule"是一个企业级规则引擎,它的客户端服务端分离模式旨在提高系统的可扩展性、灵活性和性能。本文将深入探讨urule在这种模式下的工作原理、优势以及实现细节。 一、urule简介 URule是由上海博科资讯股份有限...
2. 规则引擎:URule内置了高效的规则引擎,能够快速执行复杂的业务规则,并支持规则的实时更新,确保业务响应的及时性。 3. 业务决策:URule支持决策表、决策树等多种决策模型,帮助用户构建复杂的企业决策流程。 4....
《URule2教学视频》是一系列深入讲解URule2规则引擎使用的教程,涵盖了从基础安装配置到高级功能的全面教学。URule是由神州泰岳研发的一款业务规则管理系统,旨在帮助企业快速构建灵活、可扩展的业务规则应用。它...
**URULE:基于RETE算法的纯Java规则引擎** URULE是一款强大且灵活的规则引擎,它采用RETE算法作为核心实现,旨在帮助开发者高效地处理业务规则的编写、管理和执行。RETE( Rapid Entrepreneurial Technology ...
### 使用 Drools 规则引擎实现业务逻辑 #### 引言 随着软件系统变得越来越复杂,管理和维护其中的业务逻辑也成为了开发过程中的一大挑战。传统的硬编码方式虽然能够实现业务需求,但在面对频繁变更的需求时显得...
"cp-urule"可能指的是一个规则引擎,它在IT行业中通常用于业务逻辑的处理和决策管理。规则引擎是一种软件系统,它允许业务规则以声明式的方式编写,然后在运行时动态执行这些规则。它们是企业级应用中的重要组成部分...