<font size=2 face="sans-serif">Hi to All,</font>
<br>
<br><font size=2 face="sans-serif">I am new to Drools 5.0...</font>
<br><font size=2 face="sans-serif">I created three classes(Student, College
and StudentCollege) and Decistion table(manohar.xls) like this:-</font>
<br><font size=2 face="sans-serif">Student.java:</font>
<br>
<br><font size=2 face="sans-serif">package com.model;</font>
<br>
<br><font size=2 face="sans-serif">public class Student {</font>
<br><font size=2 face="sans-serif"> private
int age;</font>
<br><font size=2 face="sans-serif"> private
int marks;</font>
<br><font size=2 face="sans-serif"> public
String department;</font>
<br><font size=2 face="sans-serif"> </font>
<br><font size=2 face="sans-serif"> public
int getAge() {</font>
<br><font size=2 face="sans-serif">
return age;</font>
<br><font size=2 face="sans-serif"> }</font>
<br><font size=2 face="sans-serif"> public
void setAge(int age) {</font>
<br><font size=2 face="sans-serif">
this.age = age;</font>
<br><font size=2 face="sans-serif"> }</font>
<br><font size=2 face="sans-serif"> public
int getMarks() {</font>
<br><font size=2 face="sans-serif">
return marks;</font>
<br><font size=2 face="sans-serif"> }</font>
<br><font size=2 face="sans-serif"> public
void setMarks(int marks) {</font>
<br><font size=2 face="sans-serif">
this.marks = marks;</font>
<br><font size=2 face="sans-serif"> }</font>
<br><font size=2 face="sans-serif"> public
String getDepartment() {</font>
<br><font size=2 face="sans-serif">
return department;</font>
<br><font size=2 face="sans-serif"> }</font>
<br><font size=2 face="sans-serif"> public
void setDepartment(String department) {</font>
<br><font size=2 face="sans-serif">
this.department = department;</font>
<br><font size=2 face="sans-serif"> }</font>
<br><font size=2 face="sans-serif"> </font>
<br>
<br><font size=2 face="sans-serif">}</font>
<br>
<br>
<br>
<br><font size=2 face="sans-serif">College.java:</font>
<br>
<br><font size=2 face="sans-serif">package com.model;</font>
<br>
<br><font size=2 face="sans-serif">public class College {</font>
<br><font size=2 face="sans-serif"> private
String ranking;</font>
<br><font size=2 face="sans-serif"> private
String location;</font>
<br><font size=2 face="sans-serif"> public
String status;</font>
<br><font size=2 face="sans-serif"> </font>
<br><font size=2 face="sans-serif"> </font>
<br><font size=2 face="sans-serif"> public
String getLocation() {</font>
<br><font size=2 face="sans-serif">
return location;</font>
<br><font size=2 face="sans-serif"> }</font>
<br><font size=2 face="sans-serif"> public
void setLocation(String location) {</font>
<br><font size=2 face="sans-serif">
this.location = location;</font>
<br><font size=2 face="sans-serif"> }</font>
<br><font size=2 face="sans-serif"> public
String getStatus() {</font>
<br><font size=2 face="sans-serif">
return status;</font>
<br><font size=2 face="sans-serif"> }</font>
<br><font size=2 face="sans-serif"> public
void setStatus(String status) {</font>
<br><font size=2 face="sans-serif">
this.status = status;</font>
<br><font size=2 face="sans-serif"> }</font>
<br><font size=2 face="sans-serif"> public
void setRanking(String ranking) {</font>
<br><font size=2 face="sans-serif">
this.ranking = ranking;</font>
<br><font size=2 face="sans-serif"> }</font>
<br><font size=2 face="sans-serif"> public
String getRanking() {</font>
<br><font size=2 face="sans-serif">
return ranking;</font>
<br><font size=2 face="sans-serif"> }</font>
<br><font size=2 face="sans-serif"> </font>
<br><font size=2 face="sans-serif"> </font>
<br><font size=2 face="sans-serif"> }</font>
<br><font size=2 face="sans-serif"> </font>
<br>
<br><font size=2 face="sans-serif">StudentCollege.java:</font>
<br>
<br><font size=2 face="sans-serif">package com.model;</font>
<br><font size=2 face="sans-serif">import java.io.IOException;</font>
<br>
<br><font size=2 face="sans-serif">import org.drools.KnowledgeBase;</font>
<br><font size=2 face="sans-serif">import org.drools.KnowledgeBaseFactory;</font>
<br><font size=2 face="sans-serif">import org.drools.builder.DecisionTableConfiguration;</font>
<br><font size=2 face="sans-serif">import org.drools.builder.DecisionTableInputType;</font>
<br><font size=2 face="sans-serif">import org.drools.builder.KnowledgeBuilder;</font>
<br><font size=2 face="sans-serif">import org.drools.builder.KnowledgeBuilderFactory;</font>
<br><font size=2 face="sans-serif">import org.drools.builder.ResourceType;</font>
<br><font size=2 face="sans-serif">import org.drools.compiler.DecisionTableFactory;</font>
<br><font size=2 face="sans-serif">import org.drools.io.ResourceFactory;</font>
<br><font size=2 face="sans-serif">import org.drools.runtime.StatefulKnowledgeSession;</font>
<br>
<br><font size=2 face="sans-serif">public class Student_College {</font>
<br><font size=2 face="sans-serif"> </font>
<br><font size=2 face="sans-serif"> public
static void main(String args[])</font>
<br><font size=2 face="sans-serif"> {</font>
<br><font size=2 face="sans-serif">
</font>
<br><font size=2 face="sans-serif">
Student s=new Student();</font>
<br><font size=2 face="sans-serif">
College c=new College();</font>
<br><font size=2 face="sans-serif">
s.setAge(18);</font>
<br><font size=2 face="sans-serif">
s.setMarks(85);</font>
<br><font size=2 face="sans-serif">
c.setRanking("A");</font>
<br><font size=2 face="sans-serif">
c.setLocation("Delhi");</font>
<br><font size=2 face="sans-serif">
</font>
<br><font size=2 face="sans-serif">
</font>
<br><font size=2 face="sans-serif">
</font>
<br><font size=2 face="sans-serif">
try</font>
<br><font size=2 face="sans-serif">
{</font>
<br><font size=2 face="sans-serif">
KnowledgeBase
kbase = readBase();</font>
<br><font size=2 face="sans-serif">
StatefulKnowledgeSession
ksession = kbase.newStatefulKnowledgeSession();</font>
<br><font size=2 face="sans-serif">
</font>
<br><font size=2 face="sans-serif">
ksession.insert(s);</font>
<br><font size=2 face="sans-serif">
ksession.insert(c);</font>
<br><font size=2 face="sans-serif">
ksession.fireAllRules();</font>
<br><font size=2 face="sans-serif">
System.out.println("Department
is "+s.getDepartment());</font>
<br><font size=2 face="sans-serif">
</font>
<br><font size=2 face="sans-serif">
System.out.println("Status
is " + c.getStatus());</font>
<br><font size=2 face="sans-serif">
</font>
<br><font size=2 face="sans-serif">
ksession.dispose();</font>
<br><font size=2 face="sans-serif">
</font>
<br><font size=2 face="sans-serif">
</font>
<br><font size=2 face="sans-serif">
</font>
<br><font size=2 face="sans-serif">
}</font>
<br><font size=2 face="sans-serif">
catch(Exception e)</font>
<br><font size=2 face="sans-serif">
{</font>
<br><font size=2 face="sans-serif">
System.out.println("Error
is "+e);</font>
<br><font size=2 face="sans-serif">
</font>
<br><font size=2 face="sans-serif">
}</font>
<br><font size=2 face="sans-serif">
</font>
<br><font size=2 face="sans-serif"> }</font>
<br><font size=2 face="sans-serif"> </font>
<br><font size=2 face="sans-serif"> private
static KnowledgeBase readBase()</font>
<br><font size=2 face="sans-serif"> {</font>
<br><font size=2 face="sans-serif">
DecisionTableConfiguration dconf = KnowledgeBuilderFactory.newDecisionTableConfiguration();</font>
<br><font size=2 face="sans-serif">
dconf.setInputType(DecisionTableInputType.XLS);</font>
<br><font size=2 face="sans-serif">
</font>
<br><font size=2 face="sans-serif">
KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder();</font>
<br><font size=2 face="sans-serif">
kbuilder.add(ResourceFactory.newClassPathResource("manohar.xls",
Student_College.class), ResourceType.DTABLE, dconf);</font>
<br><font size=2 face="sans-serif">
</font>
<br><font size=2 face="sans-serif">
//Printing the rules in detail</font>
<br><font size=2 face="sans-serif">
String drlString = null;</font>
<br><font size=2 face="sans-serif">
try {</font>
<br><font size=2 face="sans-serif">
drlString
= DecisionTableFactory.loadFromInputStream(ResourceFactory.newClassPathResource("com/model/manohar.xls").getInputStream(),
dconf);</font>
<br><font size=2 face="sans-serif">
} catch (IOException e) {</font>
<br><font size=2 face="sans-serif">
// TODO
Auto-generated catch block</font>
<br><font size=2 face="sans-serif">
e.printStackTrace();</font>
<br><font size=2 face="sans-serif">
}</font>
<br><font size=2 face="sans-serif">
</font>
<br><font size=2 face="sans-serif">
System.out.println("..........."+drlString);</font>
<br><font size=2 face="sans-serif">
</font>
<br><font size=2 face="sans-serif">
</font>
<br><font size=2 face="sans-serif">
</font>
<br><font size=2 face="sans-serif">
</font>
<br><font size=2 face="sans-serif">
if(kbuilder.hasErrors())</font>
<br><font size=2 face="sans-serif">
{</font>
<br><font size=2 face="sans-serif">
throw
new RuntimeException(kbuilder.getErrors().toString());</font>
<br><font size=2 face="sans-serif">
</font>
<br><font size=2 face="sans-serif">
}</font>
<br><font size=2 face="sans-serif">
</font>
<br><font size=2 face="sans-serif">
KnowledgeBase kbase = KnowledgeBaseFactory.newKnowledgeBase();</font>
<br><font size=2 face="sans-serif">
kbase.addKnowledgePackages(kbuilder.getKnowledgePackages());</font>
<br><font size=2 face="sans-serif">
</font>
<br><font size=2 face="sans-serif">
return kbase;</font>
<br><font size=2 face="sans-serif">
</font>
<br><font size=2 face="sans-serif">
</font>
<br><font size=2 face="sans-serif"> }</font>
<br>
<br><font size=2 face="sans-serif">}</font>
<br>
<br>
<br>
<br><font size=2 face="sans-serif">manohar.xls:</font>
<br>
<br>
<table>
<tr>
<td>
<td><font size=1>RuleSet</font>
<td><font size=1>com.model</font>
<td>
<td>
<td>
<td>
<tr>
<td>
<td><font size=1>Import</font>
<td><font size=1>com.model.Student, com.model.College</font>
<td>
<td>
<td>
<td>
<tr>
<td>
<td>
<td>
<td>
<td>
<td>
<td>
<tr>
<td>
<td><font size=1>RuleTable for gettingthe Department and Status of the
College</font>
<td>
<td>
<td>
<td>
<td>
<tr>
<td>
<td><font size=1>CONDITION</font>
<td><font size=1>CONDITION</font>
<td><font size=1>CONDITION</font>
<td><font size=1>CONDITION</font>
<td><font size=1>ACTION</font>
<td><font size=1>ACTION</font>
<tr>
<td>
<td><font size=1>$s:Student</font>
<td><font size=1>$s:Student</font>
<td><font size=1>$c:College</font>
<td><font size=1>$c:College</font>
<td>
<td>
<tr>
<td>
<td><font size=1>age==</font>
<td><font size=1>marks==</font>
<td><font size=1>ranking==</font>
<td><font size=1>location==</font>
<td><font size=1>$s.setDepartment($param);</font>
<td><font size=1>$c.setStatus($param);</font>
<tr>
<td>
<td>
<td>
<td>
<td>
<td>
<td>
<tr>
<td>
<td>
<div align=right><font size=1>18</font></div>
<td>
<div align=right><font size=1>85</font></div>
<td><font size=1>A</font>
<td><font size=1>Delhi</font>
<td><font size=1>Science</font>
<td><font size=1>AICTE</font>
<tr>
<td>
<td>
<div align=right><font size=1>18</font></div>
<td>
<div align=right><font size=1>90</font></div>
<td><font size=1>B</font>
<td><font size=1>Kanpur</font>
<td><font size=1>Science</font>
<td><font size=1>AICTE</font>
<tr>
<td>
<td>
<div align=right><font size=1>20</font></div>
<td>
<div align=right><font size=1>90</font></div>
<td><font size=1>A</font>
<td><font size=1>Mumbai</font>
<td><font size=1>Maths</font>
<td><font size=1>AICTE</font>
<tr>
<td>
<td>
<div align=right><font size=1>23</font></div>
<td>
<div align=right><font size=1>87</font></div>
<td><font size=1>C</font>
<td><font size=1>Hyderabad</font>
<td><font size=1>Physics</font>
<td><font size=1>AICTE</font></table>
<br><br>
<br><font size=2 face="sans-serif">I am getting following errors while
executing the StudentCollege.java, Please help me in getting output...</font>
<br>
<br>
<br><font size=2 face="sans-serif">Error is java.lang.RuntimeException:
Duplicate declaration for variable '$s' in the rule 'for gettingthe
Department and Status of the College_10' : [Rule name='for gettingthe
Department and Status of the College_10']</font>
<br><font size=2 face="sans-serif">Duplicate declaration for variable '$c'
in the rule 'for gettingthe Department and Status of the College_10'
: [Rule name='for gettingthe Department and Status of the College_10']</font>
<br><font size=2 face="sans-serif">Duplicate declaration for variable '$s'
in the rule 'for gettingthe Department and Status of the College_11'
: [Rule name='for gettingthe Department and Status of the College_11']</font>
<br><font size=2 face="sans-serif">Duplicate declaration for variable '$c'
in the rule 'for gettingthe Department and Status of the College_11'
: [Rule name='for gettingthe Department and Status of the College_11']</font>
<br><font size=2 face="sans-serif">Duplicate declaration for variable '$s'
in the rule 'for gettingthe Department and Status of the College_12'
: [Rule name='for gettingthe Department and Status of the College_12']</font>
<br><font size=2 face="sans-serif">Duplicate declaration for variable '$c'
in the rule 'for gettingthe Department and Status of the College_12'
: [Rule name='for gettingthe Department and Status of the College_12']</font>
<br><font size=2 face="sans-serif">Duplicate declaration for variable '$s'
in the rule 'for gettingthe Department and Status of the College_13'
: [Rule name='for gettingthe Department and Status of the College_13']</font>
<br><font size=2 face="sans-serif">Duplicate declaration for variable '$c'
in the rule 'for gettingthe Department and Status of the College_13'
: [Rule name='for gettingthe Department and Status of the College_13']</font>
<br><font size=2 face="sans-serif">Rule Compilation error : [Rule name='for
gettingthe Department and Status of the College_10']</font>
<br><font size=2 face="sans-serif"> com/model/Rule_for__gettingthe_Department_and_Status_of_the_College_10_0.java
(7:513) : Science cannot be resolved</font>
<br><font size=2 face="sans-serif"> com/model/Rule_for__gettingthe_Department_and_Status_of_the_College_10_0.java
(8:538) : AICTE cannot be resolved</font>
<br><font size=2 face="sans-serif">Rule Compilation error : [Rule name='for
gettingthe Department and Status of the College_12']</font>
<br><font size=2 face="sans-serif"> com/model/Rule_for__gettingthe_Department_and_Status_of_the_College_12_0.java
(7:513) : Maths cannot be resolved</font>
<br><font size=2 face="sans-serif"> com/model/Rule_for__gettingthe_Department_and_Status_of_the_College_12_0.java
(8:536) : AICTE cannot be resolved</font>
<br><font size=2 face="sans-serif">Rule Compilation error : [Rule name='for
gettingthe Department and Status of the College_11']</font>
<br><font size=2 face="sans-serif"> com/model/Rule_for__gettingthe_Department_and_Status_of_the_College_11_0.java
(7:513) : Science cannot be resolved</font>
<br><font size=2 face="sans-serif"> com/model/Rule_for__gettingthe_Department_and_Status_of_the_College_11_0.java
(8:538) : AICTE cannot be resolved</font>
<br><font size=2 face="sans-serif">Rule Compilation error : [Rule name='for
gettingthe Department and Status of the College_13']</font>
<br><font size=2 face="sans-serif"> com/model/Rule_for__gettingthe_Department_and_Status_of_the_College_13_0.java
(7:513) : Physics cannot be resolved</font>
<br><font size=2 face="sans-serif"> com/model/Rule_for__gettingthe_Department_and_Status_of_the_College_13_0.java
(8:538) : AICTE cannot be resolved</font>
<br>
<br>
<br>
<br>
<br>
<br>
<br><font size=2 face="sans-serif">Thanks and Regards<br>
Manohar Kokkula<br>
Mailto: manohar.kokkula@tcs.com<br>
<br>
</font><pre style="white-space:normal">=====-----=====-----=====<br>Notice: The information contained in this e-mail<br>message and/or attachments to it may contain <br>confidential or privileged information. If you are <br>not the intended recipient, any dissemination, use, <br>review, distribution, printing or copying of the <br>information contained in this e-mail message <br>and/or attachments to it are strictly prohibited. If <br>you have received this communication in error, <br>please notify us by reply e-mail or telephone and <br>immediately and permanently delete the message <br>and any attachments. Thank you<br><br><br></pre>