`
y806839048
  • 浏览: 1126549 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

urule2规则引擎的一些使用

阅读更多

 

搭建好规则引擎之后会在数据库中自动生成相应的表,表中记录相应的页面规则等的配置信息

 

项目名   包名   ----在界面中需要配置,到时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;

}

 

}

 

 

  • 大小: 65.3 KB
  • 大小: 74.6 KB
  • 大小: 39.9 KB
  • 大小: 62.3 KB
  • 大小: 39.5 KB
分享到:
评论

相关推荐

    规则引擎urule文档

    URule Pro是一款强大的规则引擎,它分为设计器和执行引擎两大部分。设计器主要包含库文件设计器和规则文件设计器,用于构建和预览业务规则。库文件设计器由四个组件组成:变量库设计器、参数库设计器、常量库设计器...

    urule所需jar包

    **URule规则引擎详解** URule是由国内知名软件企业开发的一款强大的业务规则管理系统,它旨在帮助企业快速构建灵活、可扩展的业务规则应用。...在项目中正确配置和使用这些JAR包,是充分利用URule规则引擎的关键。

    专家经验知识库+可视化规则引擎+Urule+决策系统

    可视化规则引擎是一种图形化界面工具,允许用户通过拖拽组件和设定条件逻辑,直观地创建、编辑和管理复杂的业务规则和决策流程,而无需编码。有以下几个核心特点: 1. 图形化界面:提供用户友好的界面,用户可以直接...

    URule决策引擎学习文档.docx

    通过使用URule,开发者能够以声明式的方式定义业务规则,无需深入编写代码,降低了业务规则变更带来的系统影响。 URule提供了多种规则设计工具,包括规则集、决策表、交叉决策表(决策矩阵)、决策树、评分卡、复杂...

    urule1234567890.zip

    另一方面,URule是一款强大的业务规则引擎,它允许业务人员通过图形化的方式定义和管理业务规则,无需依赖技术人员,从而实现业务规则的快速迭代和灵活调整。 "Spring cloud和规则引擎urule整合代码"这个项目,显然...

    URule规则引擎控制台部分JS项目

    URule是一款由Bstek自主研发基于RETE算法的规则引擎产品,提供了向导式决策集、脚本式决策集、决策表、决策树、评分卡及决策流六种类型的规则表现方式,采用基于WEB的可视化设计器,当前就是URule控制台的JS源码项目...

    URULE是一款基于RETE算法的纯Java规则引擎,提供规则集、决策表、决策树、评分卡,规则流等各.zip

    URULE是一款基于RETE算法的纯Java规则引擎,提供规则集、决策表、决策树、评分卡,规则流等各

    基于Spring的规则引擎

    当业务部门需要调整优惠券使用规则时,只需要修改规则引擎中的配置,而无需更改应用程序代码。 ##### 2.5 技术优势 - **灵活性**:规则引擎使得业务规则可以在不修改代码的情况下进行变更,大大提高了系统的灵活性...

    基于RETE算法的Java规则引擎URULE设计源码

    该项目是URULE规则引擎的源码,采用Java语言开发,辅以JavaScript、HTML、CSS等前端技术,共计906个文件。其中Java源文件553个,JavaScript文件169个,HTML文件20个,CSS文件18个。URULE基于RETE算法,提供规则集、...

    urule:URULE是一种基于REE算法的纯Java规则引擎,提供规则集,决策表,决策树,评分卡,规则流等各种规则表现工具以及基于网页的可视化设计器,可快速开发出的各种复杂业务规则

    URule是一种纯Java规则引擎,它以RETE算法为基础,提供向导式规则集,脚本式规则集,决策表,交叉决策表(PRO版提供),决策树,评分卡及决策流共六种类型的规则定义方式,配合基于WEB的设计器,可快速实现规则的...

    URULE是一款基于RETE算法的纯Java规则引擎.zip

    提供规则集、决策表、决策树、评分卡,规则流等各种规则表现工具及基于网页的可视化设计器,可快速开发出各种复杂业务规则。 开发工具在软件开发生命周期中扮演着至关重要的角色,它们旨在简化和加速从概念设计到...

    urule的客户端服务端分离模式

    "urule"是一个企业级规则引擎,它的客户端服务端分离模式旨在提高系统的可扩展性、灵活性和性能。本文将深入探讨urule在这种模式下的工作原理、优势以及实现细节。 一、urule简介 URule是由上海博科资讯股份有限...

    urule-master.zip

    2. 规则引擎:URule内置了高效的规则引擎,能够快速执行复杂的业务规则,并支持规则的实时更新,确保业务响应的及时性。 3. 业务决策:URule支持决策表、决策树等多种决策模型,帮助用户构建复杂的企业决策流程。 4....

    urule2教学视频

    《URule2教学视频》是一系列深入讲解URule2规则引擎使用的教程,涵盖了从基础安装配置到高级功能的全面教学。URule是由神州泰岳研发的一款业务规则管理系统,旨在帮助企业快速构建灵活、可扩展的业务规则应用。它...

    一款基于RETE算法的纯Java规则引擎

    **URULE:基于RETE算法的纯Java规则引擎** URULE是一款强大且灵活的规则引擎,它采用RETE算法作为核心实现,旨在帮助开发者高效地处理业务规则的编写、管理和执行。RETE( Rapid Entrepreneurial Technology ...

    使用 Drools 规则引擎实现业务逻辑

    ### 使用 Drools 规则引擎实现业务逻辑 #### 引言 随着软件系统变得越来越复杂,管理和维护其中的业务逻辑也成为了开发过程中的一大挑战。传统的硬编码方式虽然能够实现业务需求,但在面对频繁变更的需求时显得...

    cp-urule111111111111111

    "cp-urule"可能指的是一个规则引擎,它在IT行业中通常用于业务逻辑的处理和决策管理。规则引擎是一种软件系统,它允许业务规则以声明式的方式编写,然后在运行时动态执行这些规则。它们是企业级应用中的重要组成部分...

Global site tag (gtag.js) - Google Analytics