流口水的规则从地图中获取价值 [英] drools rule get value from a map

查看:93
本文介绍了流口水的规则从地图中获取价值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如何在阻塞时获得流口水中的垂直值.

How to get the perticular value in the drools when block.

我正在寻找类似的东西,但是它不起作用:

I am looking for something like this but its not working:

我已将Hashmap插入到工作内存中,并尝试在When中检索它

I have inserted Hashmap into Working memory and trying to retrieve it in When

$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

推荐答案

对于地图/列表/数组,可以使用[]语法访问元素.另外,如果您使用的是Drools 5.3+,现在评估基本上是不相关的.

For maps/lists/arrays, you can use [] syntax to access elements. Also, if you are using Drools 5.3+, evals are basically irrelevant now.

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

使用Drools 5.1/5.2,您可以执行以下操作:

With Drools 5.1/5.2, you could do:

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

这篇关于流口水的规则从地图中获取价值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆