[rules-users] (no subject)

Nick Heitz nheitz at curulis.com
Mon Nov 23 15:02:50 EST 2009


Have you thought about using ruleflow to control the execution of the 
rules?  I'm guessing you could easilycontrol the decision tree type 
behaviour you're describing.

Nick

Lindy hagan wrote:
> I have around 8 to 9 conditions. Around 12 rules in each drl 
> file(files &rules will grow). This will make rule file complicated.
>
> On Mon, Nov 23, 2009 at 1:19 PM, Wolfgang Laun 
> <wolfgang.laun at gmail.com <mailto:wolfgang.laun at gmail.com>> wrote:
>
>     Best to specify all conditions in full, with all relevant properties,
>     i.e., add sale != "Junion"/"Senior" in rules 2 and 4.
>     -W
>
>
>
>
>     On 11/23/09, Lindy hagan <lindyhagan at gmail.com
>     <mailto:lindyhagan at gmail.com>> wrote:
>     > I have 4 drl files in my app. Loading all the 4 files 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.
>     > 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 is it possible , If the rule 1 is satisfied,
>     rule2 is
>     > still executed.Is there any way we can stop rule2 from beinge
>     executed?
>     > Similary stop File2.drl being executed. Any suggestions?
>     >
>     _______________________________________________
>     rules-users mailing list
>     rules-users at lists.jboss.org <mailto:rules-users at lists.jboss.org>
>     https://lists.jboss.org/mailman/listinfo/rules-users
>
>
> ------------------------------------------------------------------------
>
> _______________________________________________
> rules-users mailing list
> rules-users at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/rules-users
>   



More information about the rules-users mailing list