旗正规则引擎规则编辑

author author     2022-09-14     738

关键词:

 

         看到有人问,旗正规则引擎定位就是规则逻辑实现简易,业务员也可以执行,可是试用的时候,突然发现还是有些凌乱,规则编辑感觉还是有点繁琐啊。那我说,方法还是没对路,接下来,我来给献上宝典。

      规则包开发

         通过“开始-->程序-->旗正商业规则定制平台—>规则配置器”启动规则配置器。启动后, 关闭欢迎首页, 进入到缺省的开发工作空间。

         通过规则配置器的测试步骤包括创建工程、创建规则包、定义对象库、定义规则、发布规则包、测试规则包、创建web页面、web方式测试规则包

         以下分别讲述这些步骤具体的操作方法:

 

1、创建工程

         点击规则编辑器中的新建工程按钮:

技术分享

         输入“体验开发”作为工程名,如果不需要改变工程存储路径,则直接点击确定即可:

技术分享

         点击确定后,规则编辑器中就会出现“体验开发”的规则工程,如下:

技术分享

         通过windows的资源浏览器,也可以看到已经新建的规则工程的存储位置:

         如下所示,可以看到在VisualRules的安装目录下的Samples目录下面,新建了一个“体验开发”的目录,在此目录下面有一个default.prj文件,以及两个目录分别为databak目录。其中data目录,将存放在此工程下新建的规则包。而bak目录将存放此工作下所有自动保存的规则包,以及每次备份产生的规则包备份文件。

         其中,以 .auto结尾的文件,都是定时自动保存的规则包,当编辑器异常退出后,会提示是否恢复自动保存的规则包。

.rpk~1~这种类型结尾的规则包,都是每次备份产生的规则包备份文件。当选择了恢复规则包历史时,会读取这些规则包备份文件,并且根据所选的进行恢复。

如果通过编辑器恢复失败,可以手工做恢复操作。只需根据文件的修改日期,找到需要恢复的文件,将其后缀改成.rpk之后,然后覆盖data下面对应的文件即可完成恢复工作。

技术分享

2、创建规则包

         右键点击“体验开发”规则工程,在弹出的菜单中选择“新建规则包”:

技术分享

         点击新建规则包后,在体验开发工程下面就会新建一个“规则包”的规则包,可以将其直接改名为hello

         技术分享

3、定义对象库

         然后展开hello规则包,点击规则包下面的“对象库”,在中间的编辑窗口中,点击添加按钮,并且输入需要添加的变量名、类型和显示名称,如下所示:

技术分享

         同理添加另一个变量,名称为welcome,类型为string,显示名称为欢迎辞:

技术分享

4、定义规则

         右键点击规则包,然后在弹出的菜单中,选择“新建规则”:

技术分享

         点击后,会在规则包下面新建新建一个“规则”,将其名称修改为“返回欢迎辞”:

技术分享

         点击“返回欢迎辞”规则后,在中间的规则编辑窗体,设置条件和动作。首先添加“添加条件”按钮:

技术分享

         之后,点击“请选择”,在弹出的菜单中,选择传入数据—>姓名:

技术分享

         然后,点击条件的判断符上,在弹出的菜单中选择“不为空”:

技术分享

         条件设置完后,设置动作。点击“添加动作”按钮,如下:

技术分享

         然后,在那么动作中,点击“请点击选择”,在弹出菜单中,选择“变量赋值”:

技术分享

         然后,点击“选择变量”,在弹出菜单中选择传入数据à欢迎辞:

技术分享

         在之后生成的赋值语句中,点击“请点击选择”,在弹出菜单中选择“输入常量值”:

技术分享

         然后点击“空”,在弹出的文本框中,录入“Hello”,并点击确定。

技术分享

         添加完“Hello”之后,点击其后面的[],在弹出菜单中选择“+”:

技术分享

         之后,点击“请点击选择”,在弹出的菜单中,选择“选择值”:

技术分享

         然后点击“请选择”,选择传入数据—>姓名:

技术分享

         设置完,满足条件的动作之后,在设置不满足条件的动作。首先将该规则的属性设置为“支持否则”,在规则的属性窗口中,在否则动作后面的选择框中打上勾:

技术分享

         之后,规则的编辑窗口,会增加否则动作。可以按照上面设置那么动作的方式来设置欢迎辞赋值为“Hello World”语句,也可以通过复制那么中的动作到否则中,然后进行修改。以下演示,怎么复制操作,首先通过鼠标拖动来选择那么中的赋值行,然后鼠标右键点击在赋值行上,选择弹出菜单中的“复制”:

技术分享

         复制后,右键点击否则动作中的“添加动作”按钮,然后选择“粘贴”:

技术分享

         然后在粘贴后的赋值行中,点击“+”,选择“[]”:

技术分享

         然后,点击“Hello”,在弹出的输入框中,输入“Hello World”,点击确定:

技术分享

         到此,就完整了规则的设置:

技术分享

5、发布规则包

         规则包发布时,需要根据该规则包生成对应的java代码,然后将该代码编译,生成.rsc文件。将此文件输出到调用该规则包的应用程序的路径目录中,就完成了发布操作。

         VisualRules可以采用自动发布和手动发布两种方式,自动发布可以设置缺省的发布路径,并且设置成在保存的时候,同时发布规则包。手动发布是在发布时,指定输出路径:

自动发布设置

         首先点击工程菜单下的“设置”:

技术分享

         选中“规则包保存后自动编译选项”,并且设置缺省的输出路径。缺省情况下为“TomcatwebappsROOTWEB-INFclasses”,此路径是一个相对路径,相对于VisualRules的安装目录下。

         因此如果VisualRules安装目录是C:visualRules,缺省情况下,点击保存后,会自动将规则包编译后的rsc文件保存到 C:visualRules TomcatwebappsROOTWEB-INFclasses中。

技术分享

自动发布

         在规则配置器中,点击保存后,会将当前规则包以rpk文件的方式,并且将编译后的规则包以rsc文件的方式保存。查看规则工程目录的data下面的文件:

技术分享

         可以看到,在规则工程的data目录下,生成了hello.rpk的文件。其中hello就是规则包的可调用执行名。

         查看规则配置器中设置的自动发布路径下,已经生成了hello.rsc文件:

技术分享

         此目录是VisualRules自带的Tomcat的缺省工程路径,当规则包发布到此目录后,就可以通过tomcathttp://localhost:8880/下面的jsp文件来访问这些规则包。

手工发布:

         为了能够通过规则服务来访问规则包,需要将规则包发布到VisualRules的规则服务路径中,此路径在VisualRules安装目录的rules目录下。

         在规则包上点击右键,选择弹出菜单中的导出—>导出规则包编译文件:

技术分享

         然后选择VisualRules安装目录的rules目录,点击确定:

技术分享

         出现以下弹出窗体后,表示发布成功:

技术分享

         然后查看VisualRules安装目录的rules目录下:

技术分享

         已经生成hello.rsc文件,说明发布成功。

6、测试规则包

         可以直接在规则配置器中,测试规则包的执行情况。点击规则包后,在中间的编辑窗体的测试窗体中,可以输入传入值,点击执行后可以显示传出值:

技术分享

         在姓名对应的“初始初始值”位置,双击鼠标后,可以输入初始值,假设输入为旗正,然后点击执行按钮。可以看到执行结果:

技术分享

         欢迎辞对应的“实际结果值”位置中,就显示了执行后的结果:“Hello 旗正”。


规则集成

Java类调用规则包

         除了规则配置器嵌入的页面配置器生成的jsp页面,调用规则包之外,其他的java工程如果要调用此规则包,可以通过规则引擎类类进行调用。以下演示eclipsejava工程如何调用规则包。

设置java工程路径

         首先在eclipsejava工程中,点击属性设置其路径。在其属性窗口的Java Build Path中设置Libraries,通过Add External JARs…加入VisualRules安装目录的lib下的engine.jar,在通过Add External Class Folder…加入VisualRules安装目录下的rules目录。如下所示:

技术分享

添加Java测试类

         java工程中添加一个java类,名为TestHello.java,其内容编辑如下:

import com.flagleader.engine.RuleEngine;

importcom.flagleader.engine.RuleEngineFactory;

public class TestHello {

         publicstatic void main(String[] args) {

                   try{

                            RuleEngineengine = RuleEngineFactory.newInstance().getRuleEngine();

                            engine.put("name","访问测试");

                            engine.excute("hello");

                            System.out.println(engine.getString("welcome"));

                   }catch (Exception e) {

                            e.printStackTrace();

                   }

         }

}

执行java测试类

         点击执行后,可以看到如下结果:

技术分享

         说明已经调用了hello规则包,并且根据传入的name值“访问测试”,返回处理结果是 hello+“访问测试”。

         同理,任何的其他java类,只需加入上述的代码,即可完成调用规则包的工作。

 


本文出自 “13184590” 博客,请务必保留此出处http://13194590.blog.51cto.com/13184590/1954198

旗正规则引擎内存表出错的原因及解决方法分享

1       内存表1.1    汇总1.1.1      错误汇总列中必须包含分组列所属部门 650)this.width=650;"src="https://s2.51cto.com/wyfs02/M02/01/8 查看详情

规则引擎的应用发展

...,使得业务系统能够更加灵活变动,响应速度更加快速,旗正商业规则管理平台正式业务规则的管理专家规则引擎由推理引擎发展而来,是一种嵌入在应用程序中的组件,实现了将业务决策从应用程序代码中分 查看详情

规则引擎的应用发展

...,使得业务系统能够更加灵活变动,响应速度更加快速,旗正商业规则管理平台正式业务规则的管理专家规则引擎由推理引擎发展而来,是一种嵌入在应用程序中的组件,实现了将业务决策从应用程序代码中分 查看详情

drools开源规则引擎比较难上手,有没有一款容易上手的规则引擎?

...B可以试试RDE规则引擎性价比可以,可读性高。 参考技术C旗正规则引擎(VisualRules)是由国家科技部和财政部的创新基金支持,专门针对国内规则引擎市场空白的情况,结合国内项目的特点而开发的一款业务规则管理系统(BRMS)产品... 查看详情

规则引擎调研(drools和qlexpress)

...规则引擎产品:开源的drools、JLisa、QlExpress,商业的Ilog、旗正等。表达式引擎Aviator。3.总体来说droolsdrools需要写drl,idea虽然框架支持。但总体来说框架比较重,每次需要释放资源。对开发人员要求较高。整体维护成本较高qlexpres... 查看详情

什么时候使用规则引擎drools

...商业和开放源码选择。开源的代表是Drools,商业的代表是旗正规则引擎VisualRules,iLog。本回答被提问者和网友采纳 参考技术B钢线有没有问题。单点还是多点 查看详情

规则引擎用户界面设计

】规则引擎用户界面设计【英文标题】:RulesEnginesUserInterfaceDesign【发布时间】:2010-12-2604:02:09【问题描述】:在工作中,我们有优化引擎,这些引擎使用的输入之一是业务规则,我们使用专有的规则编辑器创建和编辑。这些规... 查看详情

pcb规则引擎之编辑器(语法着色,错误提示,代码格式化)(代码片段)

对于一个规则引擎中的脚本代码编辑器是非常关键的,因为UI控件直接使用对象是规则维护者,关系到用户体验,在选用脚本编辑器的功能时除了满足代码的编辑的基本编辑要求外,功能还需要包含;语法着色,错误提示,代码格式化,代... 查看详情

什么事规则引擎

规则引擎一、规则引擎概述1.1什么是规则引擎1.2使用规则引擎的优势1.3规则引擎应用场景一、规则引擎概述1.1什么是规则引擎规则引擎,全称为业务规则管理系统,英文名为BRMS(即BusinessRuleManagementSystem)。规则引擎的主要... 查看详情

drrols规则引擎

1.什么是规则引擎?  规则引擎是一种嵌套在应用程序中的组件,它实现了将业务规则从应用程序代码中分离出来。规则引擎使用特定的语法编写业务规则,规则引擎可以接受数据输入、解释业务规则、并根据业务规则做出相... 查看详情

规则引擎选型及简单应用

规则引擎实现了将业务决策从应用程序代码中分离出来,并使用预定义的语义模块编写业务决策。规则引擎具体执行可以分为接受数据输入,解释业务规则,根据业务规则做出业务决策几个过程,使用规则引擎可以把复杂、冗余... 查看详情

何时使用业务规则引擎

】何时使用业务规则引擎【英文标题】:WhenisaBusinessRulesEngineused【发布时间】:2010-10-2103:37:24【问题描述】:什么时候使用业务规则引擎?业务规则引擎和脚本/配置/定制有什么区别【问题讨论】:【参考方案1】:当您尝试在代... 查看详情

drools规则引擎一文读懂(代码片段)

目录一、Drools简介电商平台的促销活动规则引擎Drools简介二、Drools快速入门 电商平台促销积分规则开发实现三、Drools规则引擎构成及其核心类Drools规则引擎构成Drools规则引擎概念四、Drools基础语法规则文件构成 规则体语法结... 查看详情

java规则引擎及jsr-94[转]

规则引擎简介     Java规则引擎是推理引擎的一种,它起源于基于规则的专家系统。     Java规则引擎将业务决策从应用程序代码中分离出来,并使用预定义的语义模块编写业务决策。Java规则引... 查看详情

具有良好接口的开源规则引擎,用于编写规则

】具有良好接口的开源规则引擎,用于编写规则【英文标题】:Opensourcerulesenginewithdecentinterfaceforwritingrules【发布时间】:2010-09-0612:16:54【问题描述】:我正在尝试找到一个开源业务规则引擎,该引擎具有用于构建规则的良好界... 查看详情

规则引擎的应用

java开源的规则引擎有:Drools、EasyRules、Mandarax、IBMILOG。使用最为广泛并且开源的是Drools。     规则引擎的优点声明式编程规则可以很容易地解决困难的问题,并得到解决方案的验证。与代码不同,规则以较不复杂的语... 查看详情

flink规则引擎实践分享(代码片段)

Flink规则引擎实践分享文章目录Flink规则引擎实践分享一、实时规则引擎架构***二、规则抽象模型三、规则、条件查询封装**3.1规则封装3.2查询规则封装四、基于ClickHouse实现用户行为明细查询服务支持4.1ClickHouse从Kafka摄取数据4.2Cl... 查看详情

我应该使用啥规则引擎? [关闭]

】我应该使用啥规则引擎?[关闭]【英文标题】:WhatruleengineshouldIuse?[closed]我应该使用什么规则引擎?[关闭]【发布时间】:2010-09-0514:48:54【问题描述】:有哪些最好或最受欢迎的规则引擎?我还没有确定编程语言,所以告诉我... 查看详情