[rules-users] Getting one type from a collection of multiple types

Wolfgang Laun wolfgang.laun at gmail.com
Tue Aug 30 00:42:55 EDT 2011


You'll have to roll your own, but it's a small one. Use accumulate steps:

$maxVa: VendorAddress() from accumulate(
   $location : VendorAddress () from $step.job.scorableLocations,
   init( VendorAddress maxVa = null; int maxScore = 0; ),
   action( if( $location.getAbcScore() > maxScore ){
               maxVa = $location;
               maxScore = $location.getAbcScore(); } ),
   result( maxVa ) )

The scope of a binding within accumulate(...) is this parenthesis.
-W

On 29 August 2011 22:52, lhorton <LHorton at abclegal.com> wrote:

> Thank you for the hints.  I have implemented a method to hide the
> instanceof
> code, and tried using the accumulate CE.  The LHS of my rule is now:
>
> $step : Step()
> $highScore : Number() from accumulate ( $location : VendorAddress () from
> $step.job.scorableLocations,
>        max($location.abcScore) )
>
> in my RHS I can display the score this way:
>
> System.out.println(" MAX SCORE IS: " + $highScore );
>
> and verify that the accumulate is indeed choosing the max score.  HOWEVER,
> what I really want is not the max score, but the ADDRESS with the max
> score.
> if I try to use $location in my RHS like this:
>
> System.out.println("high score is: " + $location.getAbcScore());
>
> I get compile time exception:
> [Error: unable to resolve method using strict-mode:
> org.drools.spi.KnowledgeHelper.$location()]
>
> It looks like my $location variable is usable in the LHS but does not get
> scope to the RHS.
>
> --
> View this message in context:
> http://drools.46999.n3.nabble.com/Getting-one-type-from-a-collection-of-multiple-types-tp3287877p3293744.html
> Sent from the Drools: User forum mailing list archive at Nabble.com.
> _______________________________________________
> rules-users mailing list
> rules-users at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/rules-users
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/rules-users/attachments/20110830/859d7d13/attachment.html 


More information about the rules-users mailing list