hi Mark,
Could you please provide us the reasons , why you have written
"eval is evil" in rule writing guidelines.I want to use it in my rules.
Regards
Rajesh Choudhary.
-----Original Message-----
From: rules-users-bounces(a)lists.jboss.org
[mailto:rules-users-bounces@lists.jboss.org] On Behalf Of
rules-users-request(a)lists.jboss.org
Sent: Sunday, July 01, 2007 9:30 PM
To: rules-users(a)lists.jboss.org
Subject: rules-users Digest, Vol 8, Issue 1
Send rules-users mailing list submissions to
rules-users(a)lists.jboss.org
To subscribe or unsubscribe via the World Wide Web, visit
https://lists.jboss.org/mailman/listinfo/rules-users
or, via email, send a message with subject or body 'help' to
rules-users-request(a)lists.jboss.org
You can reach the person managing the list at
rules-users-owner(a)lists.jboss.org
When replying, please edit your Subject line so it is more specific
than "Re: Contents of rules-users digest..."
Today's Topics:
1. Re: Unexpected token "." in primary - Rule Compilation
Error
(McShiv)
2. Help with MR3 (s erel)
----------------------------------------------------------------------
Message: 1
Date: Sat, 30 Jun 2007 15:05:19 -0700 (PDT)
From: McShiv <rajesh_sachin10(a)yahoo.co.in>
Subject: Re: [rules-users] Unexpected token "." in primary - Rule
Compilation Error
To: rules-users(a)lists.jboss.org
Message-ID: <11377473.post(a)talk.nabble.com>
Content-Type: text/plain; charset=us-ascii
Hi Michael,
What is vanilla DRL? Can you briefly explain about it?
Thanks,
McShiv
Michael Neale wrote:
hmm.. there is a problem with the action of the 2nd rule, so,
converting
it
to vanilla DRL:
rule "SpeCodeSpeValProdPlan12"
salience 50
when
...
then
if(common.getProd() == "{prodCode1}" || common.getPlan() ==
"{planCode1}"){System.out.println("Error");}
end
That doesn't look quite right - you are doing == on strings - .equals
would
be better). I would try that rule on its own, without a DSL - to see
what
is
causing it. Also - why are you doing the if on the RHS? I would get
rid of
that if at all possible to save confusion later.
On 6/30/07, McShiv <rajesh_sachin10(a)yahoo.co.in> wrote:
>
>
> DRL Syntax
> package com.policy;
> expander SpeCodeSpeValProdPlan.dsl;
> #list any import classes here.
> import com.viking.common.transferbeans.CommonInformation;
> import com.sentry.common.entitybeans.EntityBean;
> import com.sentry.common.entitybeans.Selected;
> import java.util.ArrayList;
> import java.util.List;
> #declare any global variables here
>
> rule "SpeCodeSpeValProdPlan11"
> salience 100
>
> when
> The EntityBean Contains Selected List
> then
> Assert All The Selected
> end
>
> rule "SpeCodeSpeValProdPlan12"
> salience 50
>
> when
> The Question Code Is "License" And The Selected Value is "Y"
> then
> Remove The Product "09" And Plan "CD"
> end
>
> DSL Syntax:
>
> [when] The EntityBean Contains Selected List = entity : EntityBean();
> eval(entity.getSelected() != null);
> [then] Assert All The Selected = Object[] quoSelList =
entity.getSelected
> ();
> for(int i = 0; i < quoSelList.length; i++){ Selected queSel =
> (Selected)quoSelList[i]; assert(queSel); System.out.println(queSel);
}
>
> [when] The Question Code Is "{speCode1}" And The Selected Value is
> "{speValue1}" = common : CommonInformation();
Selected(stateSpecificCode
> ==
> "{speCode1}", stateSpecificValue == "{speValue1}");
> [then] Remove The Product "{prodCode1}" And Plan "{planCode1}" =
> if(common.getProd() == "{prodCode1}" || common.getPlan() ==
> "{planCode1}"){System.out.println("Error");}
>
>
> The Selected Class is an Object Array inside EntityBean Class.
> CommonInformation is a seperate class. CommonInformation & EntityBean
> will
> be available in Working Memory(asserted earlier in java class).
>
> I need to remove the Selected Classes in the Object array and assert
into
> the working memory. Thats what I am doing in the First Rule.
>
> In the Second rule I check for some condition and print the error
> according
> to the condition.
> Thanks,
> McShiv
>
> Fernando Meyer Camargo wrote:
> >
> > howdy,
> >
> > is your package name right? please paste your rule code.
> >
> > Fernando Meyer
> > fmcamargo(a)gmail.com
> > GPG: 5A6D 3374 B055 A513 9A02 A03B 3DB3 7485 D804 DDFB
> >
> >
> > On Jun 29, 2007, at 10:16 PM, McShiv wrote:
> >
> >>
> >> com.package.FatalSystemException
> >> at org.drools.rule.Package.checkValidity(Unknown Source)
> >> at org.drools.reteoo.RuleBaseImpl.addPackage(Unknown Source)
> >> at
> >> com.sentry.underwriting.ruleexecutor.DroolsExecutor.executeRules
> >> (DroolsExecutor.java)
> >> at
> >>
com.sentry.underwriting.ruleexecutor.RulesExecutionProcessor.callRules
> >> Executor(RulesExecutionProcessor.java:82)
> >> at
> >>
com.sentry.underwriting.ruleexecutor.RulesExecutionProcessor.rulesExec
> >> utionprocess(RulesExecutionProcessor.java:65)
> >> at
> >> com.sentry.underwriting.ruleprocessor.RulesProcessor.processRules
> >> (RulesProcessor.java)
> >> at
> >> com.sentry.underwriting.test.UnderwritingDemo.main
> >> (UnderwritingDemo.java:21)
> >> Caused by: org.drools.rule.InvalidRulePackage: Rule Compilation
> >> error File
> >> com/policy/Rule_SpeCodeSpeValProdPlan12_0.java, Line 12, Column
176:
> >> Unexpected token "." in primary
> >>
> >> ... 7 more
> >>
> >>
> >> I am using Drools 3.0.6 version.
> >>
> >> I got the above message when the drl files are added to the
> >> RuleBase class.
> >>
> >> I debugged the code. The error was thrown when
> >> ruleBase.addPackage(packageBuilder.getPackage()); line was called
> >> in the
> >> DroolsExecutor class.
> >>
> >> Can anyone please suggest me any sollution for this problem.
> >>
> >> Thanks in addvance.
> >>
> >> Thanks,
> >> McShiv.
> >> --
> >> View this message in context:
http://www.nabble.com/Unexpected-
> >> token-%22.%22-in-primary---Rule-Compilation-Error-
> >> tf4002948.html#a11369488
> >> Sent from the drools - user mailing list archive at
Nabble.com.
> >>
> >> _______________________________________________
> >> rules-users mailing list
> >> rules-users(a)lists.jboss.org
> >>
https://lists.jboss.org/mailman/listinfo/rules-users
> >
> > _______________________________________________
> > rules-users mailing list
> > rules-users(a)lists.jboss.org
> >
https://lists.jboss.org/mailman/listinfo/rules-users
> >
> >
>
> --
> View this message in context:
>
http://www.nabble.com/Unexpected-token-%22.%22-in-primary---Rule-Compila
tion-Error-tf4002948.html#a11369670
> Sent from the drools - user mailing list archive at
Nabble.com.
>
> _______________________________________________
> rules-users mailing list
> rules-users(a)lists.jboss.org
>
https://lists.jboss.org/mailman/listinfo/rules-users
>
_______________________________________________
rules-users mailing list
rules-users(a)lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-users
--
View this message in context:
http://www.nabble.com/Unexpected-token-%22.%22-in-primary---Rule-Compila
tion-Error-tf4002948.html#a11377473
Sent from the drools - user mailing list archive at
Nabble.com.
------------------------------
Message: 2
Date: Sun, 1 Jul 2007 18:36:23 +0300
From: "s erel" <erelsagi(a)gmail.com>
Subject: [rules-users] Help with MR3
To: rules-users(a)lists.jboss.org
Message-ID:
<1a1500b50707010836t71a04e1cx6b9b5775cda5f780(a)mail.gmail.com>
Content-Type: text/plain; charset="iso-8859-1"
Hello,
I've just started integrating MR3 into my project (I've previously
used 3.06). The
drl compiles and everything seems fine, but during
tests the following exception is thrown for time to time:
java.lang.ArrayIndexOutOfBoundsException: 17
at org.drools.util.AbstractHashTable$HashTableIterator.next(
AbstractHashTable.java:250)
at org.drools.reteoo.Rete$ObjectTypeConf.buildCache(Rete.java:434)
at
org.drools.reteoo.Rete$ObjectTypeConf.getObjectTypeNodes(Rete.java:425)
at org.drools.reteoo.Rete.assertObject(Rete.java:172)
at
org.drools.reteoo.ReteooRuleBase.assertObject(ReteooRuleBase.java:190)
at
org.drools.reteoo.ReteooWorkingMemory$WorkingMemoryReteAssertAction.exec
ute(
ReteooWorkingMemory.java:163)
at org.drools.common.AbstractWorkingMemory.executeQueuedActions(
AbstractWorkingMemory.java:1135)
at org.drools.common.AbstractWorkingMemory.insert(
AbstractWorkingMemory.java:781)
at org.drools.common.AbstractWorkingMemory.insert(
AbstractWorkingMemory.java:584)
at org.drools.jsr94.rules.StatefulRuleSessionImpl.addObject(
StatefulRuleSessionImpl.java:162)
This only happens during high load tests.
Can anyone help me?
Thanks