Hm, I thought Drools had specificity conflict resolution on by
default. Has
that changed, or am I just getting old? :)
Aren't we all :)
2.5.7.1 Conflict Resolution
[...]
The default conflict resolution strategies employed by Drools are:
Salience and LIFO (last in, first out).
If this "specificity" is indeed in there it's specifically undocumented.
-W
--- On Mon, 11/23/09, Edson Tirelli <ed.tirelli(a)gmail.com> wrote:
> From: Edson Tirelli <ed.tirelli(a)gmail.com>
> Subject: Re: [rules-users] Could anyone suggest alternate approach
> To: "Rules Users List" <rules-users(a)lists.jboss.org>
> Date: Monday, November 23, 2009, 1:44 PM
>
> Also, if each of your steps involve multiple rules,
> the best way to coordinate "phased" execution is
> to use ruleflow.
>
> Edson
>
> 2009/11/23 Wolfgang Laun <wolfgang.laun(a)gmail.com>
>
> Without salience, there is no
> guarantee that rule 1 will fire before rule 2.
>
>
>
> Seeing only part of the problem makes it difficult to shell
> out good advice.
>
>
>
> -W
>
>
>
> On 11/23/09, Greg Barton <greg_barton(a)yahoo.com>
> wrote:
>
> > The reason rule 2 is executed even though rule 1 has
> fired is because you're
>
> > not notifying the engine that the CustomerDetail has
> been changed. You need
>
> > the statement "update(d)" in the rule
> action. (And this is generally true
>
> > when you modify matched objects in a rule. Only
> leave it out in the rare
>
> > circumstance when you do NOT want other rules to be
> triggered by a change.)
>
> >
>
> > Also, an alternative to your approach is using
> agenda-group. Check the
>
> > docs.
>
> >
>
> > --- On Mon, 11/23/09, Lindy hagan <lindyhagan(a)gmail.com>
> wrote:
>
> >
>
> >> From: Lindy hagan <lindyhagan(a)gmail.com>
>
> >> Subject: [rules-users] Could anyone suggest
> alternate approach
>
> >> To: "Rules Users List" <rules-users(a)lists.jboss.org>
>
> >> Date: Monday, November 23, 2009, 11:56 AM
>
> >> Please ignore my previous email as I
>
> >> did not include subject.
>
> >>
>
> >> I have 4 drl files in my app. Loading all the 4
> during
>
> >> application startup.
>
> >> If any rule is satisfied in File 1,I don't
> want File 2
>
> >> be called.Should execute File 3 and 4.
>
> >> Similarly If rules in File 1 is not satisfied,want
> to call
>
> >> File 2 then File 3 and 4.
>
> >>
>
> >> At present I am doing this way.Please let me know
> if
>
> >> this is ok or if there is any better solution.
>
> >> Set an attribute when a rule is satisfied.
> (attribute is
>
> >> not dummy,I need it in my app)
>
> >> Attribute is checked in each and every if it is
> null.
>
> >>
>
> >> Example File1.drl contains 2 rules.If first rule
> is
>
> >> satisfied, don't want to execute second
> rule.So setting
>
> >> rule with a valid number.
>
> >>
>
> >> File1.drl
>
> >> rule "1.Age Factor and Junior"
>
> >> when
>
> >> d : CustomerDetail( rule ==
> ""
>
> >> && sale == 'Junior' && age
> in
>
> >> ("16","17"))
>
> >> then
>
> >>
>
> >> System.out.println("Junior and Age
> Satisfied
>
> >> ");
>
> >> d.setRule("1");
>
> >> end
>
> >> rule "2.Junior only Age Factor"
>
> >> when
>
> >> m : CustomerDetail( rule ==
> ""
>
> >> && age in
> ("16","17"))
>
> >> then
>
> >> System.out.println("Only junior Age
>
> >> satisfied.");
>
> >>
>
> >> m.setRule("2");
>
> >> end
>
> >>
>
> >> File2.drl
>
> >> rule "3.Age Factor and Senior"
>
> >> when
>
> >> d : CustomerDetail( rule ==
> ""
>
> >> && sale == 'Senior' && age
> in
>
> >> ("70","75"))
>
> >> then
>
> >>
>
> >> System.out.println("Senior and Age
> Satisfied
>
> >> ");
>
> >> d.setRule("10");
>
> >> end
>
> >> rule "4.Senior only Age Factor "
>
> >> when
>
> >> m : CustomerDetail( rule ==
> ""
>
> >> && age in
> ("70","75"))
>
> >> then
>
> >> System.out.println("Only senior Age
>
> >> satisfied.");
>
> >>
>
> >> m.setRule("11");
>
> >> end
>
> >> This one works but I see these disadvantages:
>
> >> 1)If the rule 1 is satisfied, rule2 is still
>
> >> executed.Similary all the rules in File2.drl.
>
> >> 2)Might impact performance all the 4 rules are
> called all
>
> >> time.
>
> >> Any suggestions?
>
> >>
>
> >> -----Inline Attachment Follows-----
>
> >>
>
> >> _______________________________________________
>
> >> rules-users mailing list
>
> >> rules-users(a)lists.jboss.org
>
> >>
https://lists.jboss.org/mailman/listinfo/rules-users
>
> >>
>
> >
>
> >
>
> >
>
> >
>
> > _______________________________________________
>
> > rules-users mailing list
>
> > rules-users(a)lists.jboss.org
>
> >
https://lists.jboss.org/mailman/listinfo/rules-users
>
> >
>
> _______________________________________________
>
> rules-users mailing list
>
> rules-users(a)lists.jboss.org
>
>
https://lists.jboss.org/mailman/listinfo/rules-users
>
>
>
>
> --
> Edson Tirelli
> JBoss Drools Core Development
> JBoss by Red Hat @
www.jboss.com
>
>
> -----Inline Attachment Follows-----
>
> _______________________________________________
> rules-users mailing list
> rules-users(a)lists.jboss.org
>
https://lists.jboss.org/mailman/listinfo/rules-users
>
_______________________________________________
rules-users mailing list
rules-users(a)lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-users