gpt4 book ai didi

java - 在 Drools 电子表格中使用 "ignore rule"回退循环遍历值数组

转载 作者:行者123 更新时间:2023-12-01 14:01:39 28 4
gpt4 key购买 nike

我有一个非常简单的问题:对于规则,我想指定一个有效值的数组。我怎样才能这样做呢?我已经查看过“in”关键字,但是如果我使用该关键字,我会从 Drools 编译器中得到一个非常奇怪的异常。

Working example with "in"

此图显示了带有“in”关键字的工作规则。但我也希望用户能够根据需要将规则标记为“可忽略”,例如使用特殊字符。

如果我将以下规则与“忽略规则”-Extra(我也在其他规则中成功使用)一起使用,我会从 Drools 编译器收到一条非常奇怪的错误消息:

Not working rule

来自编译器的错误消息:

Unable to Analyse Expression plant == "91" || plant == "83" || plant == "63" || plant == "28" || "91":
[Error: Right side of logical operation is not of type boolean. Found class java.lang.String]
[Near : {... lant == "83" || plant == "63" || plant == "28" || "91" ....}]
^
[Line: 9, Column: 2] : [Rule name='CAS_11']

Predicate '"83"' must be a Boolean expression
[Line: 9, Column: 2] : [Rule name='CAS_11']

Predicate '"63"' must be a Boolean expression
[Line: 9, Column: 2] : [Rule name='CAS_11']

我希望你们能帮助我..我对 Drools 很陌生,这可能是问题所在;)...

C YA

最佳答案

也许实现你想要的最简单的方法就是改变你的状况

plant in ($param) && "-" not in ($param)

使用此 "91","28","63" 会触发规则,但 "93","28","-" 不会。普通的 "-" 也会忽略该规则。

如果您想要一个更高级的解决方案,您可以为您的域添加另一个事实,例如忽略一个 boolean 属性,并为此设置另一个条件。此解决方案的详细信息需要有关您的实际用例的更多信息,但我希望您能明白。

关于java - 在 Drools 电子表格中使用 "ignore rule"回退循环遍历值数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19315288/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com