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.