Oh, it's not in there, at least not as the default. I checked. (It is one of the
pluggable conflict resolution strategies included in the source,
ComplexityConflictResolver.) I just couldn't remember if it had been the default at
some point.
--- On Mon, 11/23/09, Wolfgang Laun <wolfgang.laun(a)gmail.com> wrote:
From: Wolfgang Laun <wolfgang.laun(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, 2:57 PM
On 11/23/09, Greg Barton <greg_barton(a)yahoo.com>
wrote:
> 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
>
_______________________________________________
rules-users mailing list
rules-users(a)lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-users