<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta content="text/html;charset=ISO-8859-1" http-equiv="Content-Type">
</head>
<body bgcolor="#ffffff" text="#000000">
Rules are not functions, they cannot be called, they execute in
response to changes in the working memory.<br>
<br>
Mark<br>
<a class="moz-txt-link-abbreviated" href="mailto:Raja.Bobbala@sanofi-aventis.com">Raja.Bobbala@sanofi-aventis.com</a> wrote:
<blockquote
cite="mid:B7330C86B440C847A4FE86A2373F9456010A1990@brwsmxsusr01.pharma.aventis.com"
type="cite">
<meta http-equiv="Content-Type" content="text/html; ">
<meta name="Generator" content="MS Exchange Server version 6.5.7638.1">
<title>How do i Load & Execute specific rules in my drl file</title>
<!-- Converted from text/rtf format -->
<p><font face="Verdana" size="2">How do i load & execute specific
rules in my drl file? For ex.,</font>
<br>
<font face="Verdana" size="2">I have 5 rules defined in rules.drl</font>
<br>
<b><font color="#960000" face="Courier New" size="2">rule</font></b> <font
color="#008000" face="Courier New" size="2">"1"</font>
<br>
<b> <font color="#960000" face="Courier New" size="2">when</font></b>
<br>
<font color="#000000" face="Courier New" size="2">cond
#1</font>
<br>
<b> <font color="#960000" face="Courier New" size="2">then</font></b>
<br>
<font color="#000000" face="Courier New" size="2">System.out.println(</font><font
color="#008000" face="Courier New" size="2">"</font><font
color="#008000" face="Courier New" size="2">Applying Rule 1"</font><font
color="#000000" face="Courier New" size="2">);</font>
<br>
<b><font color="#960000" face="Courier New" size="2">end</font></b>
</p>
<p><b><font color="#960000" face="Courier New" size="2">rule</font></b>
<font color="#008000" face="Courier New" size="2">"</font><font
color="#008000" face="Courier New" size="2">2</font><font
color="#008000" face="Courier New" size="2">"</font>
<br>
<b> <font color="#960000" face="Courier New" size="2">when</font></b>
<br>
<font color="#000000" face="Courier New" size="2">cond
#2</font>
<br>
<b> <font color="#960000" face="Courier New" size="2">then</font></b>
<br>
<font color="#000000" face="Courier New" size="2">System.out.println(</font><font
color="#008000" face="Courier New" size="2">"</font><font
color="#008000" face="Courier New" size="2">Applying Rule 2"</font><font
color="#000000" face="Courier New" size="2">);</font>
<br>
<b><font color="#960000" face="Courier New" size="2">end</font></b>
</p>
<p><b><font color="#960000" face="Courier New" size="2">rule</font></b>
<font color="#008000" face="Courier New" size="2">"</font><font
color="#008000" face="Courier New" size="2">3</font><font
color="#008000" face="Courier New" size="2">"</font>
<br>
<b> <font color="#960000" face="Courier New" size="2">when</font></b>
<br>
<font color="#000000" face="Courier New" size="2">cond
#3</font>
<br>
<b> <font color="#960000" face="Courier New" size="2">then</font></b>
<br>
<font color="#000000" face="Courier New" size="2">System.out.println(</font><font
color="#008000" face="Courier New" size="2">"</font><font
color="#008000" face="Courier New" size="2">Applying Rule 3"</font><font
color="#000000" face="Courier New" size="2">);</font>
<br>
<b><font color="#960000" face="Courier New" size="2">end</font></b>
</p>
<p><b><font color="#960000" face="Courier New" size="2">rule</font></b>
<font color="#008000" face="Courier New" size="2">"</font><font
color="#008000" face="Courier New" size="2">4</font><font
color="#008000" face="Courier New" size="2">"</font>
<br>
<b> <font color="#960000" face="Courier New" size="2">when</font></b>
<br>
<font color="#000000" face="Courier New" size="2">cond
#4</font>
<br>
<b> <font color="#960000" face="Courier New" size="2">then</font></b>
<br>
<font color="#000000" face="Courier New" size="2">System.out.println(</font><font
color="#008000" face="Courier New" size="2">"</font><font
color="#008000" face="Courier New" size="2">Applying Rule 4"</font><font
color="#000000" face="Courier New" size="2">);</font>
<br>
<b><font color="#960000" face="Courier New" size="2">end</font></b>
</p>
<p><b><font color="#960000" face="Courier New" size="2">rule</font></b>
<font color="#008000" face="Courier New" size="2">"</font><font
color="#008000" face="Courier New" size="2">5</font><font
color="#008000" face="Courier New" size="2">"</font>
<br>
<b> <font color="#960000" face="Courier New" size="2">when</font></b>
<br>
<font color="#000000" face="Courier New" size="2">cond
#5</font>
<br>
<b> <font color="#960000" face="Courier New" size="2">then</font></b>
<br>
<font color="#000000" face="Courier New" size="2">System.out.println(</font><font
color="#008000" face="Courier New" size="2">"</font><font
color="#008000" face="Courier New" size="2">Applying Rule 5"</font><font
color="#000000" face="Courier New" size="2">);</font>
<br>
<b><font color="#960000" face="Courier New" size="2">end</font></b>
</p>
<p><font face="Verdana" size="2">From my Java class, based on some
conditions, i should call the respective rules.</font>
</p>
<p><font face="Verdana" size="2">public void CheckRules(){</font>
<br>
<br>
<font face="Verdana" size="2">if (some Condition){</font>
<br>
<font face="Verdana" size="2">// Execute rule1, rule2</font>
<br>
<font face="Verdana" size="2">}else if (some Condition){</font>
<br>
<font face="Verdana" size="2">// Execute rule1, rule3</font>
<br>
<font face="Verdana" size="2">}else if (some Condition){</font>
<br>
<font face="Verdana" size="2">// Execute rule3, rule5</font>
<br>
<font face="Verdana" size="2">}else if (some Condition){</font>
<br>
<font face="Verdana" size="2">// Execute
rule1,rule2,rule3,rule5</font>
<br>
<font face="Verdana" size="2">}</font>
<br>
<font face="Verdana" size="2">}</font>
</p>
<p><font color="#000000" face="Courier New" size="2">PackageBuilder
builder =</font><b> <font color="#7f0055" face="Courier New" size="2">new</font></b><font
color="#000000" face="Courier New" size="2"> PackageBuilder();</font>
<br>
<font color="#000000" face="Courier New" size="2">builder.addPackageFromDrl(</font><b><font
color="#7f0055" face="Courier New" size="2">new</font></b><font
color="#000000" face="Courier New" size="2">
InputStreamReader(FieldValidation.</font><b><font color="#7f0055"
face="Courier New" size="2">class</font></b><font color="#000000"
face="Courier New" size="2">.getResourceAsStream(</font><font
color="#2a00ff" face="Courier New" size="2">"/BizRules.drl"</font><font
color="#000000" face="Courier New" size="2">)));</font>
<br>
<font color="#000000" face="Courier New" size="2">RuleBase rulebase =
RuleBaseFactory.<i>newRuleBase</i>();</font>
<br>
<font color="#000000" face="Courier New" size="2">rulebase.addPackage(builder.getPackage());</font>
<br>
<b><i><font color="#000000" face="Courier New" size="2">WorkingMemory
workingMemory = rulebase.newWorkingMemory(); </font> </i></b>
<br>
<font color="#000000" face="Courier New" size="2">workingMemory.assertObject(</font><i><font
color="#000000" face="Courier New" size="2">object1</font></i><font
color="#000000" face="Courier New" size="2">);</font>
<br>
<font color="#000000" face="Courier New" size="2">workingMemory.assertObject(</font><i><font
color="#000000" face="Courier New" size="2">object2</font></i><font
color="#000000" face="Courier New" size="2">);</font>
<br>
<font color="#000000" face="Courier New" size="2">workingMemory.fireAllRules(</font><b><font
color="#7f0055" face="Courier New" size="2">new</font></b><font
color="#000000" face="Courier New" size="2">
RuleNameEqualsAgendaFilter(</font><font color="#2a00ff"
face="Courier New" size="2">"1"</font><font color="#000000"
face="Courier New" size="2">));</font>
<br>
<br>
<font color="#000000" face="Courier New" size="2">workingMemory.clearAgenda();</font>
<br>
<b><i><font color="#000000" face="Courier New" size="2">WorkingMemory
workingMemory1 = rulebase.newWorkingMemory();</font></i></b>
<br>
<font color="#000000" face="Courier New" size="2">workingMemory1.assertObject(</font><i><font
color="#000000" face="Courier New" size="2">object1</font></i><font
color="#000000" face="Courier New" size="2">);</font>
<br>
<font color="#000000" face="Courier New" size="2">workingMemory1.assertObject(</font><i><font
color="#000000" face="Courier New" size="2">object2</font></i><font
color="#000000" face="Courier New" size="2">);</font>
<br>
<font color="#000000" face="Courier New" size="2">workingMemory1.fireAllRules(</font><b><font
color="#7f0055" face="Courier New" size="2">new</font></b><font
color="#000000" face="Courier New" size="2">
RuleNameEqualsAgendaFilter(</font><font color="#2a00ff"
face="Courier New" size="2">"</font><font color="#2a00ff"
face="Courier New" size="2">2</font><font color="#2a00ff"
face="Courier New" size="2">"</font><font color="#000000"
face="Courier New" size="2">));</font>
</p>
<p><font face="Verdana" size="2">Is there any way by which we can add
specific rules to the Agendafilter and call fireAllRules() with the
rulelist as parameter.</font></p>
<pre wrap="">
<hr size="4" width="90%">
_______________________________________________
rules-users mailing list
<a class="moz-txt-link-abbreviated" href="mailto:rules-users@lists.jboss.org">rules-users@lists.jboss.org</a>
<a class="moz-txt-link-freetext" href="https://lists.jboss.org/mailman/listinfo/rules-users">https://lists.jboss.org/mailman/listinfo/rules-users</a>
</pre>
</blockquote>
<br>
</body>
</html>