具有列表值和多个条件的事实规则

标签 drools

我正在尝试编写一个规则,将事实列表值与多条件规则进行比较

rule: only valid legislations
when
 fact:Fact (legislationList == ('L1' && 'L2') OR 'L3')
then
 fact.printMessage();
end

ie. if fact.legislationList={'L1', 'L2') then fire
    if fact.legislationList={'L1', 'L4') then dont fire

我查看了“from”子句,但不清楚这将如何解决我的问题。

有一些巫术方法/解决方案可以帮助我吗?

谢谢

-lp

最佳答案

假设立法列表是一个列表,那么您可以使用Drools的“包含”运算符:

rule: only valid legislations
when
    fact:Fact ((legislationList contains "L1" && legislationList contains "L2") || legislationList contains "L3" )
then
    fact.printMessage();
end

您可以稍微缩写语法,但我想明确一点。

希望对你有帮助

关于具有列表值和多个条件的事实规则,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31155181/

相关文章:

java - Drools 单例 StatefulKnowledgeSession 作为 Web 服务

drools - 坚持口水知识 session

java - Web 应用程序中的 Jboss Drools

java - 如何连接 Hibernate 和 Drools

java - 在特定时间或事实执行 ​​Drools 规则

java - Drools:AfterMatchFiringEvent 使用 OR 条件多次触发同一规则?

java - JBOSS BPM Suite 安装程序错误 : No 'jar' binary detected in PATH. 请确保此二进制文件存在,然后再继续安装

java - 电子表格中没有 RuleTable 单元格 - Excel 文件和 DRT

compiler-errors - 使用JDK 1.8时出现Drools 6.50错误

java - 如何在“流口水”部分中获取两个列表