[rules-users] Can we use 'from' CE in Decision Tables ?

groovenarula gnarula1 at la-z-boy.com
Thu Dec 3 12:13:44 EST 2009


Thomas,

Thanks the response. I'm not sure how the newlines disappeared from my post
either. I do know I'd put them all there neatly formatted.

I'll try out solution you provided and let you know how it goes. I guess
I'll have to resort to quite a few evals in my decision tables, given that
'from' does not work in there. Don't like it, but if it works, at least I'll
be able to acheive my project's objects.

Thanks again for the solution. I'll let you know how it works out.

Gurvinder


Swindells, Thomas wrote:
> 
> Hi Gurvinder.
> 
> Not sure where new lines have gone from your email - it makes it very hard
> to read!
> 
> I've also been working on a project which uses decision tables and I
> couldn't find any way to use from statements either.  I'm hoping to get
> some time within the project to work on the drools decision table code to
> add some improvements, providing support for the from clause is one of
> these however I'm not sure whether I will get time or not.
> 
> However I think you may be able to restructure your code so that you don't
> need the from cause however I've not fully tested it. The code relies on
> their existing a constructor which takes the promotion code and the equals
> is defined that P1.equals(P2) when P1.code.equals(P2.code).
> 
> If you wanted to match that a promotion of a particular name exists then I
> think you can use the rule
> Rule "existsPromotion"  when
> Line(promos contains (new Promotion("HOTBUY"))) then ...
> 
> However the expression language doesn't support "not contains" which means
> you have to full back to use java:
> rule " contains d"
>       when
>             line : Line(eval(!line.getPromos().contains(new
> Promotion("HOTBUY"))))
>       then
>             ...
> end
> 
> If you prefer you could also define a method on Line
> containsPromotionWithCode(code) which would let you choose how to do the
> match.
> 
> As a spreadsheet the above would then look something like the following:
> RuleTable Hotbuys
> 
> 
> 
> 
> 
> NAME
> 
> CONDITION
> 
> ACTION
> 
> 
> 
> l :Line
> 
> 
> 
> 
> 
> eval(!l.getPromos().contains(new Promotion("$param")))
> 
> System.out.println("$param");
> 
> Rule Name
> 
> Number Directors
> 
> Warning
> 
> example1
> 
> Hotbuys
> 
> Hotbuys missing
> 
> 
> Hope that helps,
> 
> Thomas
> 
> 
> From: rules-users-bounces at lists.jboss.org
> [mailto:rules-users-bounces at lists.jboss.org] On Behalf Of groovenarula
> Sent: 03 December 2009 06:51
> To: rules-users at lists.jboss.org
> Subject: [rules-users] Can we use 'from' CE in Decision Tables ?
> 
> Hello all, Is it possible to define the follow rule in a decision table :
> rule "Activate Promotion" when l : Line( ) not ( Promotion ( code ==
> "HOTBUY" ) from l.promos ) then #do some action end The rule above works
> perfectly for what I need when defined in a rule file. However, when I try
> to define it in a decision table so that the 'code' can be feed from a
> spreadsheet, I use the following values in the rules cells : RuleTable
> HOTBUYS CONDITION ACTION l : Line not ( Promotion ( code == "$param" )
> from l.promos ) System.out.println("$param added"); PROMOTION PROMOTION
> HOTBUY BESTBUY I'm getting the following parser errors [10,17]: [ERR 101]
> Line 10:17 no viable alternative at input 'Promotion' in rule "_11" in
> pattern Line [10,29]: [ERR 101] Line 10:29 no viable alternative at input
> 'code' in rule "_11" [10,63]: [ERR 102] Line 10:63 mismatched input ')'
> expecting 'then' in rule "_11" java.lang.IllegalArgumentException: Could
> not parse knowledge. at
> com.sample.DecisionTableTest.readKnowledgeBase(DecisionTableTest.java:85)
> at com.sample.DecisionTableTest.main(DecisionTableTest.java:28) Also in
> Eclipse IDE, I get the following error : "Unknown error while parsing.
> This is a bug. Please contact the Development team." NewPromotions.xls Is
> it possible to use 'from' conditional element in decision tables ? If so,
> what am I doing wrong. If not, then what's the best approach to implement
> the rule above in a decision table. I'm running Drools 5.1.0M1 in Eclipse.
> Help truly appreciated. Gurvinder
> ________________________________
> View this message in context: Can we use 'from' CE in Decision Tables
> ?<http://n3.nabble.com/Can-we-use-from-CE-in-Decision-Tables-tp67005p67005.html>
> Sent from the Drools - User mailing list
> archive<http://n3.nabble.com/Drools-User-f47000.html> at Nabble.com.
> 
> ________________________________
> 
> **************************************************************************************
> This message is confidential and intended only for the addressee. If you
> have received this message in error, please immediately notify the
> postmaster at nds.com and delete it from your system as well as any copies.
> The content of e-mails as well as traffic data may be monitored by NDS for
> employment and security purposes. To protect the environment please do not
> print this e-mail unless necessary.
> 
> NDS Limited. Registered Office: One London Road, Staines, Middlesex, TW18
> 4EX, United Kingdom. A company registered in England and Wales. Registered
> no. 3080780. VAT no. GB 603 8808 40-00
> **************************************************************************************
> 
> ________________________________
> This message is confidential and intended only for the addressee. If you
> have received this message in error, please immediately notify the
> postmaster at nds.com and delete it from your system as well as any copies.
> The content of e-mails as well as traffic data may be monitored by NDS for
> employment and security purposes.
> To protect the environment please do not print this e-mail unless
> necessary.
> 
> An NDS Group Limited company. www.nds.com
> 
> _______________________________________________
> rules-users mailing list
> rules-users at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/rules-users
> 
> 

-- 
View this message in context: http://n3.nabble.com/Can-we-use-from-CE-in-Decision-Tables-tp67005p67372.html
Sent from the Drools - User mailing list archive at Nabble.com.



More information about the rules-users mailing list