Please ignore this, I figured it out!
On 7/6/07, Ronald
R. DiFrango <ron.difrango@gmail.com>
wrote:
Changed
the loading order and now I get the following:
Exception in thread "main" java.lang.ExceptionInInitializerError
at
com.circuitcity.rtvcrms.test.MainBasedTester.testRules(MainBasedTester.java
:31)
at
com.circuitcity.rtvcrms.test.MainBasedTester.main(MainBasedTester.java:23)
Caused by: java.lang.RuntimeException: Failure loading the Rules
at com.circuitcity.rtvcrms.rules.RtvDecisionEngine.<clinit>(
RtvDecisionEngine.java:47)
... 2 more
Caused by: org.drools.rule.InvalidRulePackage: [1,0]:
unknown:1:0 required (...)+ loop (decision=2) did not match anything;
token=[@0,0:6='created',<8>,1:0]
at org.drools.rule.Package.checkValidity(Package.java:409)
at
org.drools.common.AbstractRuleBase.addPackage(AbstractRuleBase.java:262)
at
com.circuitcity.rtvcrms.rules.RtvDecisionEngine.<clinit>(RtvDecisionEngine.java
:43)
... 2 more
On 7/6/07, Ronald R. DiFrango <
ron.difrango@gmail.com> wrote:
I
am getting the following exception all of a sudden:
Exception in thread "main" java.lang.ExceptionInInitializerError
at
com.circuitcity.rtvcrms.test.MainBasedTester.testRules(MainBasedTester.java
:31)
at
com.circuitcity.rtvcrms.test.MainBasedTester.main(MainBasedTester.java:23)
Caused by: java.lang.RuntimeException: Failure loading the Rules
at com.circuitcity.rtvcrms.rules.RtvDecisionEngine.<clinit>(
RtvDecisionEngine.java:47)
... 2 more
Caused by:
org.drools.compiler.PackageBuilder$MissingPackageNameException: Missing
package name for rule package.
at org.drools.compiler.PackageBuilder.validatePackageName
(PackageBuilder.java:278)
at
org.drools.compiler.PackageBuilder.addPackage(PackageBuilder.java:214)
at
org.drools.compiler.PackageBuilder.addPackageFromDrl(PackageBuilder.java:147)
at com.circuitcity.rtvcrms.rules.RtvDecisionEngine
.<clinit>(RtvDecisionEngine.java:40)
... 2 more
Here are my DRL files:
created on: Dec 7, 2006
package com.circuitcity.rtvcrms.rules
#list any import classes here.
import java.math.BigDecimal
;
import java.math.BigInteger;
import com.circuitcity.rtvcrms.bw.Constants;
import com.circuitcity.rtvcrms.bw.DocumentTypes;
import com.circuitcity.rtvcrms.bw.StatusConstants;
import com.circuitcity.rtvcrms.Adjustment
;
import com.circuitcity.rtvcrms.DetailLine;
import com.circuitcity.rtvcrms.EffectivePrice;
import com.circuitcity.rtvcrms.RepaymentCode;
import com.circuitcity.rtvcrms.MatchingOutput;
#declare any global variables here
global java.util.List matchedList;
rule "CM Qty EQ RTV Qty"
salience 10
when
cmDetailLine : DetailLine(cmNumber != null, lineNumber !=
null, status != StatusConstants.MATCHED
, cmRtvNumber : cmRtvNumber, cmBrand : brand , cmModel : model,
cmQuantity : availableQuantity )
rtvDetailLine : DetailLine(rtvNumber != null, rtvNumber ==
cmRtvNumber, lineNumber != null, status != StatusConstants.MATCHED
, brand == cmBrand, model == cmModel, availableQuantity == cmQuantity )
then
System.out.println(StatusConstants.MATCHED);
MatchingOutput output =
buildMatchingOutput(
rtvDetailLine.getBrand(),
rtvDetailLine.getClazz(),
cmDetailLine.getLineNumber(),
cmDetailLine.getCmNumber(),
(String)null, // defTag
rtvDetailLine.getEffectivePrice(),
(BigDecimal)null, // keyRecNo
rtvDetailLine.getItemCost(),
rtvDetailLine.getAvailableQuantity(),
rtvDetailLine.getModel
(),
(String)null, // originalRepaymentCode
(BigDecimal)null, // rrLineNumber
rtvDetailLine.getLineNumber(),
rtvDetailLine.getRtvNumber(),
StatusConstants.MATCHED,
DocumentTypes.RTV_CM,
(String)null); // vendorNumber
matchedList.add(output);
cmDetailLine.setAvailableQuantity(Constants.NO_MORE_QUANTITY
);
cmDetailLine.setStatus(StatusConstants.MATCHED);
rtvDetailLine.setAvailableQuantity(Constants.NO_MORE_QUANTITY);
rtvDetailLine.setStatus(StatusConstants.MATCHED);
end
rule "RNR Qty EQ RTV Qty"
salience 10
when
rnrDetailLine : DetailLine(keyRecNo != null, lineNumber !=
null, status != StatusConstants.MATCHED, cmRtvNumber : cmRtvNumber,
cmBrand : brand , cmModel : model, cmQuantity : availableQuantity )
rtvDetailLine : DetailLine(rtvNumber != null, rtvNumber ==
cmRtvNumber, lineNumber != null, status != StatusConstants.MATCHED,
brand == cmBrand, model == cmModel, availableQuantity == cmQuantity )
then
System.out.println(StatusConstants.MATCHED);
MatchingOutput output =
buildMatchingOutput(
rtvDetailLine.getBrand(),
rtvDetailLine.getClazz
(),
(BigDecimal)null, // cmDetailLine.getLineNumber(),
(String)null, // cmDetailLine.getCmNumber(),
(String)null, // defTag
rtvDetailLine.getEffectivePrice
(),
rnrDetailLine.getKeyRecNo(), // keyRecNo
rtvDetailLine.getItemCost(),
rtvDetailLine.getAvailableQuantity(),
rtvDetailLine.getModel(),
(String)null, // originalRepaymentCode
rnrDetailLine.getLineNumber(), // rrLineNumber
rtvDetailLine.getLineNumber(),
rtvDetailLine.getRtvNumber(),
StatusConstants.MATCHED,
DocumentTypes.RTV_RR,
(String)null); // vendorNumber
matchedList.add(output);
rnrDetailLine.setAvailableQuantity(Constants.NO_MORE_QUANTITY);
rnrDetailLine.setStatus(StatusConstants.MATCHED);
rtvDetailLine.setAvailableQuantity(Constants.NO_MORE_QUANTITY);
rtvDetailLine.setStatus(StatusConstants.MATCHED);
end
#created on: Apr 10, 2007
package com.circuitcity.rtvcrms.rules
#list any import classes here.
import java.math.BigDecimal;
import com.circuitcity.rtvcrms.bw.ModelDiscrepancyOutput;
import com.circuitcity.rtvcrms.bw.StatusConstants
;
import com.circuitcity.rtvcrms.Adjustment;
import com.circuitcity.rtvcrms.DetailLine;
import com.circuitcity.rtvcrms.RepaymentCode;
import com.circuitcity.rtvcrms.MatchingOutput;
import org.drools.WorkingMemory
;
import org.drools.QueryResults;
import org.drools.QueryResult;
import java.util.Iterator;
#declare any global variables here
rule "Sum CM"
salience 90
when
mdOutput : ModelDiscrepancyOutput ()
repaymentCode : RepaymentCode( code == "MD")
cmAdjustment : Adjustment(cmNumber != null, lineNumber != null,
originalRepaymentCode == "MD" )
then
System.out.println
("Sum CM");
mdOutput.setSumCmAndRnr(cmAdjustment.getAvailableQuantity());
end
Any thoughts?
_______________________________________________
rules-users mailing list
rules-users@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-users