<p dir="ltr">You need to use kiesession.insert( object ).</p>
<p dir="ltr">Sent on the move</p>
<div class="gmail_quote">On 8 Dec 2013 20:52, "anjana.ackroyd" <<a href="mailto:anjana.ackroyd@gmail.com">anjana.ackroyd@gmail.com</a>> wrote:<br type="attribution"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Hi,<br>
I am new to drools and trying to figure out how to get this simple example<br>
working.<br>
I have intellij IDE .<br>
I am trying to compare two numbers using drools 6.x and dont know how to<br>
insert numberone and numbertwo after I get my drl file into my file system<br>
<br>
Here is my code<br>
<br>
RuleRunner.java<br>
package com.cambiahealth.enterprise.service.droolsrule;<br>
<br>
import org.kie.api.KieServices;<br>
import org.kie.api.builder.KieBuilder;<br>
import org.kie.api.builder.KieFileSystem;<br>
import org.kie.api.builder.KieRepository;<br>
import org.kie.api.builder.Message.Level;<br>
import org.kie.api.io.KieResources;<br>
import org.kie.api.io.Resource;<br>
import org.kie.api.runtime.KieContainer;<br>
import org.kie.api.runtime.KieSession;<br>
<br>
public class RuleRunner<br>
{<br>
private KieServices kieServices;<br>
private KieContainer kieContainer;<br>
private KieSession kieSession;<br>
private KieResources kieResources;<br>
private KieFileSystem kieFileSystem;<br>
private KieRepository kieRepository;<br>
<br>
public RuleRunner()<br>
{<br>
this.kieServices = KieServices.Factory.get();<br>
this.kieResources = kieServices.getResources();<br>
this.kieFileSystem = kieServices.newKieFileSystem();<br>
this.kieRepository = kieServices.getRepository();<br>
}<br>
<br>
<br>
public void addRuleFile(String packagename, String rulefile)<br>
{<br>
Resource resource = kieResources.newClassPathResource(rulefile);<br>
<br>
packagename = packagename.replace(".","/");<br>
<br>
String resourcepath =<br>
"src/main/resources/"+packagename+"/"+rulefile;<br>
<br>
kieFileSystem.write(resourcepath, resource);<br>
}<br>
<br>
public KieSession buildKnowledgeSession()<br>
{<br>
KieBuilder kb = kieServices.newKieBuilder(kieFileSystem);<br>
<br>
kb.buildAll();<br>
<br>
if (kb.getResults().hasMessages(Level.ERROR))<br>
{<br>
throw new RuntimeException("Build Errors:\n" +<br>
kb.getResults().toString());<br>
}<br>
<br>
kieContainer =<br>
kieServices.newKieContainer(kieRepository.getDefaultReleaseId());<br>
<br>
kieSession = this.kieContainer.newKieSession();<br>
<br>
return kieSession;<br>
}<br>
<br>
public KieSession fireAllRules()<br>
{<br>
kieSession.fireAllRules();<br>
<br>
return kieSession;<br>
}<br>
<br>
public void dispose()<br>
{<br>
this.kieSession.dispose();<br>
}<br>
}<br>
<br>
<br>
<br>
<br>
<br>
<br>
My numbercompare.drl<br>
<br>
<br>
declare NumberCompare<br>
message: String<br>
numberone: Integer<br>
numbertwo: Integer<br>
end<br>
<br>
rule "numberone is equals to numbertwo"<br>
when<br>
n: NumberCompare(numberone == numbertwo);<br>
<br>
then<br>
n.setMessage("numberone is equals to numbertwo");<br>
end<br>
<br>
rule "numberone is greater than numbertwo"<br>
when<br>
n: NumberCompare(numberone > numbertwo);<br>
<br>
then<br>
n.setMessage("numberone is greater than numbertwo");<br>
end<br>
<br>
rule "numberone is less than numbertwo"<br>
when<br>
n: NumberCompare(numberone < numbertwo);<br>
<br>
then<br>
n.setMessage("numberone is less than numbertwo");<br>
end<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
My DroolsService.java where I want to pass in values 1 and 2 to the drl file<br>
<br>
<br>
runner.addRuleFile("drools", "compareNumberRule.drl");<br>
<br>
KieSession kieSession = runner.buildKnowledgeSession();<br>
//How do I pass 1 as numberone and 2 as numbertwo values ????? before<br>
firerules<br>
runner.fireAllRules();<br>
runner.dispose();<br>
return number.getMessage(); //To change body of implemented methods<br>
use File | Settings | File Templates.<br>
}<br>
}<br>
<br>
<br>
<br>
--<br>
View this message in context: <a href="http://drools.46999.n3.nabble.com/How-to-insert-values-into-drl-tp4027151.html" target="_blank">http://drools.46999.n3.nabble.com/How-to-insert-values-into-drl-tp4027151.html</a><br>
Sent from the Drools: User forum mailing list archive at Nabble.com.<br>
_______________________________________________<br>
rules-users mailing list<br>
<a href="mailto:rules-users@lists.jboss.org">rules-users@lists.jboss.org</a><br>
<a href="https://lists.jboss.org/mailman/listinfo/rules-users" target="_blank">https://lists.jboss.org/mailman/listinfo/rules-users</a><br>
</blockquote></div>