流口水决定 table、"mismatched input '>' in rule "

Drools decision table, "mismatched input '>' in rule "

我正在使用 Drools 做出决定 table,但遇到大于字符 ('>') 的问题。 我在流口水文档中看到您可以使用“>”和“<”,但我似乎弄错了。

专栏是(我还没有足够的声誉来post张图片):

问题是架构不允许我获得完整的对象。我只能有 RemoteObject 中的一些字段。 所以我能做的是:

Integer duration = getRemoteObjectDuration();
kSession.insert(duration);
kSession.fireAllRules();

这导致:

[6,2]: [ERR 102] Line 6:2 mismatched input '>' in rule "RuleTable_11"
[14,2]: [ERR 102] Line 14:2 mismatched input '>' in rule "RuleTable_12"
[0,0]: Parser returned a null Package

我可以创建一个包含我的字段的虚拟对象,但必须做一些更好的事情。 有人对此有想法吗?

多亏了 laune 的评论,我终于成功了,但是我不得不创建一个只包含我需要的字段的自定义对象,并且我在 CONDITION 下面写下了这个新的 class 的名称。

要匹配整数,您可以使用

这样的规则
rule findInt
when
    Integer( $iv: intValue > 42 )
then
    System.out.println( "got an Integer > 42: " + $iv );
end

因此,电子表格列根据

CONDITION
Integer
intValue >
- ... -
42

当然,当您有多个 Integer 对象在工作内存中浮动时,这注定会失败,无法识别什么是什么。

对于你的困境,我会创建一个影子对象来保存远程对象的所有字段,而不是单独包装这些字段。