《Drools7.0.0.Final规则引擎教程》RHS语法详解

RHS语法使用说明RHS是满足LHS条件之后进行后续处理部分的统称,该部分包含要执行的操作的列表信息。RHS主要用于处理结果,因此不建议在此部分再进行业务判断。如果必须要业务判断需要考虑规则设计的合理性,是否能将判断部分放置于LHS,那里才...

《Drools7.0.0.Final规则引擎教程》结果条件详解

结果条件在Java中,如果有重复的代码我们会考虑进行重构,抽取公共方法或继承父类,以减少相同的代码在多处出现,达到代码的最优管理和不必要的麻烦。Drools同样提供了类似的功能。下面我们以实例来逐步说明。 像下面最原始的两条规则,有相同的...

《Drools7.0.0.Final规则引擎教程》关键字详解

关键字从Drools 5开始引入了硬关键字和软关键字。硬关键字是保留关键字,在命名demo对象,属性,方法,函数和规则文本中使用的其他元素时,不能使用任何硬关键字。以下是必须避免的硬关键字: (1)true (2)false (3)n...

《Drools7.0.0.Final规则引擎教程》相同对象and List使用详解

前奏这样一个问题,怎么实现两个相同对象的插入和比较?相信很多朋友也遇到类似的问题,于是抽时间为大家写一段实例代码,后续代码会同步到GitHub中。下面简单介绍一下实现实例:场景向session中insert两个相同的对象,但对象的参数值有不...

《Drools7.0.0.Final规则引擎教程》获取规则名称和包名详解

场景这样一个问题,如果我执行了很多规则,调用fireAllRules方法只会返回触发了几条规则,那么我怎么知道哪些规则被触发了,并把这些触发的规则的名称存如数据库呢?其实这个问题很好解决,也是实践中必然会遇到的问题,为大家写了一个简单的示例...

《Drools7.0.0.Final规则引擎教程》第4章 global全局变量详解

global 全局变量global用来定义全局变量,它可以让应用程序的对象在规则文件中能够被访问。通常,可以用来为规则文件提供数据或服务。特别是用来操作规则执行结果的处理和从规则返回数据,比如执行结果的日志或值,或者与应用程序进行交互的规则...

《Drools7.0.0.Final规则引擎教程》默认条件的陷阱详解

场景今天向大家介绍一个典型的具有陷阱的场景,虽然不常用,但是如果错误使用的话也会导致莫名其妙的问题。当我们向session中插入多个对象,如果这多个对象匹配到同一条规则时,fireAllRules方法返回命中的规则数就是插入对象的数目。但是...

《Drools7.0.0.Final规则引擎教程》activation-group的多FACT对象详解

场景当我们使用activation-group时,默认会执行优先级最高的一个规则,然后其他规则不再执行,这也是此属性的基本特性。那么,大家是否考虑过这样一个问题,那就是如果在调用fireAllRules方法之前,insert了多个对象,那么...

《Drools7.0.0.Final规则引擎教程》第4章 Query查询之基础详解

Query查询首先,我们先来看一下query的语法结构图: Query语法提供了一种查询working memory中符合约束条件的FACT对象的简单方法。它仅包含规则文件中的LHS部分,不用指定“when”和“then”部分。Que...