Thanks Edson. Yea, I typed it on the fly instead of cut/paste. I will try
the inline eval.
Your help is appreciated!
Edson Tirelli-3 wrote:
Sorry, it is not clear what you are trying to do.
There are a few clear mistakes in your rule:
1. You can't use the $totV variable inside the accumulate, since $totV is
the "result" of the accumulate.
2. You can't use variables bound inside accumulate outside of it, since
accumulate is a scope delimiter ($ciNo, $ciLineNo).
3. If you want to sum values, use sum() function, but if you want to count
occurrences, use the count() function.
4. This expression is wrong: "$totV > 1". You must either compare
something
to a field or use an "eval()" (inlined or not) to evaluate arbitrary
expressions.
5. I think it is simply a typo, but since the DRL is case sensitive, the
java class Number must be written with capital N.
Maybe if you can explain with more common terms what rule you are
trying
to write, we can help more... the best I could imagine is:
rule "00910 Pass XV sets"
when
$status : ValidationPassFailStatus()
exists ValidationControl(validationNo == 910)
CiLines( $ciNo : $ciNo, $ciLineNo : $ciLineNo, spiSecondary == "X" )
Number( intValue > 1 )
from accumulate( $c : CiLines( ciNo == $ciNo, ciLineNo ==
$ciLineNo,
spiSecondary == "V" ),
count( $c ) )
then
$status.pass(910);
end
Hope it helps.
Edson
2007/7/27, Mike D <mike.dalaker(a)kewill.com>:
>
>
> Newbie question again...
>
> I'm trying to get a count of V lines if I have an X. If more than 1 V
> line,
> I pass... Obviously I can't have $totV on LHS, but you get my
> drift. What
> is the correct syntax for this one? I've been digging in the docs on
> accum,
> but can't find anything that fits what I'm trying to do.
>
> Thanks,
> Mike
>
> rule "00910 Pass XV sets"
> when
> $status : ValidationPassFailStatus()
> exists ValidationControl(validationNo == 910)
> $totV : number()
> from accumulate(CiLines($ciNo : $ciNo, $ciLineNo :
> ciLineNo, spiSecondary
> == "V"), sum($totV))
> CiLines(ciNo == $ciNo, ciLineNo == $ciLineNo,
> spiSecondary
> == "X", $totV > 1)
> then
> $status.pass(910);
> end
>
>
> --
> View this message in context:
>
http://www.nabble.com/Accum-question-tf4157809.html#a11829193
> Sent from the drools - user mailing list archive at
Nabble.com.
>
> _______________________________________________
> rules-users mailing list
> rules-users(a)lists.jboss.org
>
https://lists.jboss.org/mailman/listinfo/rules-users
>
--
Edson Tirelli
Software Engineer - JBoss Rules Core Developer
Office: +55 11 3529-6000
Mobile: +55 11 9287-5646
JBoss, a division of Red Hat @
www.jboss.com
_______________________________________________
rules-users mailing list
rules-users(a)lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-users