0

ブロック時によだれの特定の値を取得する方法。

私はこのようなものを探していますが、機能していません:

Hashmapをワーキングメモリに挿入し、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
4

2 に答える 2

4

マップ/リスト/配列の場合、[]構文を使用して要素にアクセスできます。また、Drools 5.3以降を使用している場合、評価は基本的に無関係になりました。

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

通常は、ハッシュ マップだけでなく、より多くの型付きオブジェクトを挿入する方が適切です。処理しようとしている情報と、なぜ a のhashmap代わりに aを挿入することを選択したのか説明できますtyped objectか?

次のようなことができると確信しています:

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

私はそれをテストしませんでしたが、型付きの事実をさらに挿入できない場合は、その方向に目を向けるべきです。乾杯

于 2011-10-15T13:41:31.870 に答える