Here's the modified rule :
rule "Test Accumulate Function"
when
$p : ProductType ($name : name)
$min_score : Number ()
from accumulate (Client (productTypeExperience.keySet contains $name,
$score : productTypeExperience[$name]),
min (((ExperienceLevel)$score).value()))
then
System.out.println ("$min_score" + $min_score);
end
and the runtime exception that i am getting is
Caused by: org.drools.RuntimeDroolsException:
[Error: unable to resolve method: java.util.HashMap.$name() [arglength=0]]
[Near : {... Unknown ....}]
Regards,
Manav
From: Edson Tirelli <tirelli@post.com>
To: Manav <manav7574@yahoo.com>; Rules Users List <rules-users@lists.jboss.org>
Sent: Mon, August 16, 2010 7:46:54 PM
Subject: Re: [rules-users] Accumulate in Drools
You can't use the cast and the method call in a regular constraint. You can use it as part of an expression. So:
$min_score : Number ()
from accumulate (Client (productTypeExperience.keySet contains $name,
$score : productTypeExperience[$name],
min ( ((ExperienceLevel)$score).value() ) )
We are working on the support of free form expressions on constraints for Drools 6 (not sure we can make it for 5.2).
Edson
2010/8/15 Manav
<manav7574@yahoo.com>
Hi,
I am trying my hand at the accumulate function in Drools 5.x but the drl fails
to compile.
Not sure what's wrong with it. Please help.
This is the sample that i am working with
rule "Test Accumulate Function"
when
$p : ProductType ($name : name)
$min_score : Number ()
from accumulate (Client (productTypeExperience.keySet contains $name,
$score :
((ExperienceLevel)productTypeExperience[$name]).value()),
min ($score))
then
System.out.println ("$min_score" + $min_score);
end
Regards,
Manav
--
Edson Tirelli
JBoss Drools Core Development
JBoss by Red Hat @
www.jboss.com