[rules-dev] A dazzling feature - not in Drools!

Wolfgang Laun wolfgang.laun at gmail.com
Thu Aug 26 05:52:18 EDT 2010


Just FYI, but who knows ;-)

Our proprietary vintage RBS has a feature is (admittedly) rarely used
but could come in handy, every now and then.

Given this class

   class Element {
       int rank; // rank > 0
   }

and to fire a rule in ascending rank order, you can write (using
modified Drools syntax)

rule "fire in rank order 1,2,..."
when
       Element( $rank : rank,... )
       // ...
salience -$rank    ### <=
then
      // ...
end

The dynamically set salience does all the work. (Of course, you can
achieve the same order
in Drools easily enough.)

This is possible since salience is a value that must be carried over
into the activation.
There is at least one other rule attribute that shares this property,
but I'm not sure
whether anything useful can be done with dynamic agenda groups.

Cheers
-W


More information about the rules-dev mailing list