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.l...@gmail.com <mailto:wolfgang.l...@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 <lindyha...@gmail.com
>     <mailto:lindyha...@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@lists.jboss.org <mailto:rules-users@lists.jboss.org>
>     https://lists.jboss.org/mailman/listinfo/rules-users
>
>
> ------------------------------------------------------------------------
>
> _______________________________________________
> rules-users mailing list
> rules-users@lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/rules-users
>   
_______________________________________________
rules-users mailing list
rules-users@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-users

Reply via email to