Hello, 
 
  in my scenario part of the KB is managed by means of "command events". 
 Rules with a low salience consume these events, assert, modify or retract
 facts and remove the command event afterwards. Rules from separate files
 with a higher salience are expected to transparently intercept handling 
 of these commands, but regardless of conditions like read order, salience
 value the intercepting rules are called (or not) in an unpredictable
manner.

 Example default handler:

 rule "Create finite context"
        salience -10
    when                 
        $start : StartCommand( time < endTime ) from entry-point
"events/context"
        not( Context( name == $start.name ) )
    then        
        insert(new TemporalContext( $start.getName(), $start.getTime(),
$start.getEndTime() ));
        retract($start);        
 end

 Example intermediary handler:

 rule "Intercept context creation"      
          salience 10
    when        
        $start : StartCommand() from entry-point "events/context"
        not( Context( name == $start.name ) )
    then            
        System.out.println( "Context creation intercepted: "+$start);
  end

 While this roughly worked with Drools 5.4, the results vary significantly 
 in Drools 5.5.0* for every test run. The salience attribute alone
apparently 
 does not guarantee for proper invocation of the intermediary handlers ? 

  Thank you 
   Jaro



--
View this message in context: 
http://drools.46999.n3.nabble.com/Intercept-event-handling-why-rule-salience-does-not-affect-execution-order-tp4020506.html
Sent from the Drools: User forum mailing list archive at Nabble.com.
_______________________________________________
rules-users mailing list
[email protected]
https://lists.jboss.org/mailman/listinfo/rules-users

Reply via email to