流口水决定 table、"mismatched input '>' in rule "
Drools decision table, "mismatched input '>' in rule "
我正在使用 Drools 做出决定 table,但遇到大于字符 ('>') 的问题。
我在流口水文档中看到您可以使用“>”和“<”,但我似乎弄错了。
专栏是(我还没有足够的声誉来post张图片):
- |条件|
- | | (空单元格)
- |持续时间 >|
- |持续时间|
- |50|
- |200|
问题是架构不允许我获得完整的对象。我只能有 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 对象在工作内存中浮动时,这注定会失败,无法识别什么是什么。
对于你的困境,我会创建一个影子对象来保存远程对象的所有字段,而不是单独包装这些字段。
我正在使用 Drools 做出决定 table,但遇到大于字符 ('>') 的问题。 我在流口水文档中看到您可以使用“>”和“<”,但我似乎弄错了。
专栏是(我还没有足够的声誉来post张图片):
- |条件|
- | | (空单元格)
- |持续时间 >|
- |持续时间|
- |50|
- |200|
问题是架构不允许我获得完整的对象。我只能有 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 对象在工作内存中浮动时,这注定会失败,无法识别什么是什么。
对于你的困境,我会创建一个影子对象来保存远程对象的所有字段,而不是单独包装这些字段。