[rules-users] Re: Missing package name for rule package.
Mark Proctor
mproctor at codehaus.org
Sat Jul 7 12:01:06 EDT 2007
Check the results on the PackageBuilder before getting the package and
adding it to the RuleBase. PackageBuilder provides the list of problems,
rather than the toString() that RuleBase does.
Mark
Ronald R. DiFrango wrote:
> Please ignore this, I figured it out!
>
> On 7/6/07, *Ronald R. DiFrango* <ron.difrango at gmail.com
> <mailto:ron.difrango at 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 at gmail.com
> <mailto:ron.difrango at 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 at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/rules-users
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/rules-users/attachments/20070707/c2033e01/attachment.html
More information about the rules-users
mailing list