And just for completeness here is my DRL file that compiles fine in the IDE:<br><br>#created on: Apr 10, 2007<br>package com.circuitcity.rtvcrms.rules<br><br>#list any import classes here.<br>import java.math.BigDecimal;<br>
<br>import com.circuitcity.rtvcrms.bw.ModelDiscrepancyOutput;<br>import com.circuitcity.rtvcrms.bw.StatusConstants;<br>import com.circuitcity.rtvcrms.AdjustmentDocument.Adjustment;<br>import com.circuitcity.rtvcrms.RepaymentCodeDocument.RepaymentCode
;<br>import org.drools.WorkingMemory;<br>import org.drools.QueryResults;<br>import org.drools.QueryResult;<br>import java.util.Iterator;<br><br>#declare any global variables here<br><br>rule "Sum CM"<br> salience 90
<br> <br> when<br> mdOutput : ModelDiscrepancyOutput ()<br> repaymentCode : RepaymentCodeDocument.RepaymentCode( code == "MD")<br> cmAdjustment : Adjustment(cmNumber != null, lineNumber != null, originalRepaymentCode == "MD" )
<br> then<br> System.out.println("Sum CM"); <br> mdOutput.setSumCmAndRnr(cmAdjustment.getAvailableQuantity());<br>end<br><br>rule "Sum RTV"<br> salience 80<br> <br> when<br> mdOutput : ModelDiscrepancyOutput ()
<br> repaymentCode : RepaymentCode( code == "MD")<br> rtvAdjustment : Adjustment(rtvNumber != null, lineNumber != null, originalRepaymentCode == "MD" )<br> then <br> System.out.println
("Sum RTV");<br> mdOutput.addSumRTVQty(rtvAdjustment.getAvailableQuantity());<br>end<br><br>rule "Sum RNR"<br> salience 70<br> <br> when<br> mdOutput : ModelDiscrepancyOutput ()<br>
repaymentCode : RepaymentCode( code == "MD")<br> rnrAdjustment : Adjustment(keyRecNo != null, lineNumber != null, originalRepaymentCode == "MD" )<br> then <br> System.out.println
("Sum RNR");<br> mdOutput.setSumCmAndRnr(rnrAdjustment.getAvailableQuantity());<br>end<br><br>rule "Repayment Code Requires Approval"<br> salience 60<br> <br> when<br> repaymentCode : RepaymentCode( code == "MD", matchApprv == "Y" )
<br> mdOutput : ModelDiscrepancyOutput( $amt1 : sumRTVQty, $amt2 : sumCmAndRnr)<br> eval($amt1.doubleValue() == $amt2.doubleValue())<br> then <br> System.out.println("Repayment Code Requires Approval");
<br> processMDAdjustments(drools.getQueryResults( "MD Adjustments" ), StatusConstants.APPROVAL);<br> System.out.println("mdOutput: " + mdOutput);<br>end<br><br>rule "Repayment Code Does Not Requires Approval"
<br> salience 60<br> <br> when<br> repaymentCode : RepaymentCode( code == "MD", matchApprv != "Y" )<br> mdOutput : ModelDiscrepancyOutput( $amt1 : sumRTVQty, $amt2 : sumCmAndRnr)
<br> eval($amt1.doubleValue() == $amt2.doubleValue())<br> then <br> System.out.println("Repayment Code Does Not Requires Approval");<br> processMDAdjustments(drools.getQueryResults( "MD Adjustments" ),
StatusConstants.MATCHED);<br> System.out.println("mdOutput: " + mdOutput);<br> <br>end<br><br>rule "MD QTY do not match"<br> salience 60<br> <br> when<br> repaymentCode : RepaymentCode( code == "MD")
<br> mdOutput : ModelDiscrepancyOutput( $amt1 : sumRTVQty, $amt2 : sumCmAndRnr)<br> eval($amt1.doubleValue() != $amt2.doubleValue())<br> then <br> System.out.println("MD QTY's do not match");
<br> processMDAdjustments(drools.getQueryResults( "MD Adjustments" ), StatusConstants.OPEN);<br>end<br><br>rule "No MD Repayment Code"<br> salience 60<br> <br> when<br> mdOutput : ModelDiscrepancyOutput( )
<br> repaymentCode : RepaymentCode( code != "MD" )<br> then <br> System.out.println("No MD Repayment code");<br> mdOutput.setLineStatus(StatusConstants.OPEN);<br> System.out.println
("mdOutput: " + mdOutput);<br>end<br><br>query "MD Adjustments" <br> adj : Adjustment(originalRepaymentCode == "MD" )<br>end<br><br>function void processMDAdjustments(QueryResults results, String status)
<br>{<br> System.out.println( "we have " + results.size() + " MD Adjustments" );<br> for ( Iterator it = results.iterator(); it.hasNext(); ) {<br> QueryResult result = ( QueryResult ) it.next
();<br> Adjustment adj = ( Adjustment ) result.get( "adj" );<br> adj.setStatus(status);<br> }<br>}<br><br><div><span class="gmail_quote">On 7/3/07, <b class="gmail_sendername">Ronald R. DiFrango
</b> <<a href="mailto:ron.difrango@gmail.com">ron.difrango@gmail.com</a>> wrote:</span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
OK, I got this workinkg now, by adding the jar file <span style="font-weight: bold;">core-3.2.3.v_686_R32x.jar</span> from the distribution to my project.<br><br>Now though when I run it, I get the following error:<br><br>
The method getQueryResults(String) is undefined for the type KnowledgeHelper<br><br>has getQueryResults been removd in 4.x or renamed?<div><span class="e" id="q_1138dcefdd5d64f3_1"><br><br><div><span class="gmail_quote">
On 7/3/07, <b class="gmail_sendername">Ronald R. DiFrango
</b> <<a href="mailto:ron.difrango@gmail.com" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">ron.difrango@gmail.com</a>> wrote:</span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
All,<br><br>I am in the process of migrating my 3.0. project to the 4.x series and when I attempt to run my code I get the following exception when I attempt to load my .drl files:<br><br>Caused by: org.drools.RuntimeDroolsException
: Unable to load dialect 'org.drools.rule.builder.dialect.java.JavaDialect:java'<br><br>Here is my package builder code:<br><br>static<br> {<br> try<br> {<br> builder = new PackageBuilder();
<br> builder.addPackageFromDrl( new InputStreamReader( RtvDecisionEngine.class.getResourceAsStream("rtv.drl" ) ) );<br> builder.addPackageFromDrl( new InputStreamReader( RtvDecisionEngine.class.getResourceAsStream
("modelDiscrepancyRules.drl" ) ) );<br> ruleBase = RuleBaseFactory.newRuleBase();<br> ruleBase.addPackage( builder.getPackage() );<br> }<br> catch(Exception e)<br> {<br>
throw new RuntimeException("Failure loading the Rules", e);<br> }<br> }<br><br><br>Any thoughts appreciated.<br><br>Ron<br>
</blockquote></div><br>
</span></div></blockquote></div><br>