[rules-users] Sequential mode help!

Torfox bartosz.jankiewicz at gmail.com
Fri Dec 4 16:25:04 EST 2009


Hi, 

I couldn't find an solution to a problem I'm struggling with for many hours. 

Generally I'm trying to implement sequential mode rules. I have applied
salience parameters to order the rules, but the engine is not executing
these rules in that order. 

I use drools 5.0.1 in sequential mode, stateless session. 

As far as I understand the documentation, in this mode the rules should be
fired in accordance to the salience attribute. 

        RuleBaseConfiguration conf = new RuleBaseConfiguration(); 
        conf.setSequential( true); 
        KnowledgeBase knowledgeBase = KnowledgeBaseFactory.newKnowledgeBase(
conf); 
        session = knowledgeBase.newStatelessKnowledgeSession(); 
        ... 

The following code snapshot proves that the execution order totally ignores
salience - "rule2" is fired prior to the "rule1" causing
NullPointerException since the Params is initiated in "rule1". 

package com.kaguar.pzu; 

import java.util.*; 
import com.kaguar.entities.*; 

global java.util.Set output; 

declare Params 
    version	 : String 
    modelGroup	: Integer 
    region	 : Integer 
end 

rule "rule1" 
        salience 1000 
        when 
                $c: Customer() 
        then 
                Params p = new Params(); 
                p.setVersion( "1.0"); 
                insert( p); 
                output.add( p); 
                $c.getPolicy().setParams( p); 
                System.out.println( "Initiation complete"); 
end 


rule "rule2" 
        salience 0 
        when 
                exists Params() 
                $c: Customer( vehicle.age == 2, policy.params.modelGroup ==
1, policy.params.region == 1) 
        then 
                System.out.println( "test"); 
end 

Please help!!! 

-- 
View this message in context: http://n3.nabble.com/Sequential-mode-help-tp68511p68511.html
Sent from the Drools - User mailing list archive at Nabble.com.



More information about the rules-users mailing list