0

阻塞时如何获得口水中的特定值。

我正在寻找这样的东西,但它不起作用:

我已将 Hashmap 插入工作内存并尝试在何时检索它

$expiry_date:HashMap(get("CREDIT_CARD_EXPIRATION_DATE"));
eval(ageInDays($expiry_date)>10) ;

我得到以下错误

[42,37]: [ERR 101] Line 42:37 no viable alternative at input '"CREDIT_CARD_EXPIRATION_DATE"' in rule "Rule1" in pattern HashMap
4

2 回答 2

4

对于地图/列表/数组,您可以使用 [] 语法来访问元素。此外,如果您使用的是 Drools 5.3+,那么 eval 现在基本上是无关紧要的。

rule X
when
    HashMap( ageInDays(this["CREDIT_CARD_EXPIRATION_DATE"]) > 10 )
then
    ...
end

使用 Drools 5.1/5.2,您可以:

rule X
when
    HashMap( eval( ageInDays(this["CREDIT_CARD_EXPIRATION_DATE"]) > 10 ) )
then
    ...
end
于 2011-10-17T14:25:55.117 回答
0

通常插入更多类型的对象比仅插入哈希映射更好。您能否解释一下您要处理的信息以及为什么选择插入 ahashmap而不是 a typed object

我很确定您可以执行以下操作:

HashMap($expire: keys["CREDIT_CARD_EXPIRATION_DATE"] )
eval(ageInDays($expire) > 10)

我没有测试它,但如果你不能插入更多类型的事实,你应该朝那个方向看。干杯

于 2011-10-15T13:41:31.870 回答