Fw: [rules-users] rules questions...
Steven Williams
stevenw at objectconsulting.com.au
Sun Jan 7 17:00:41 EST 2007
Hi Joel,
The whole point of globals is that you don't need to assert them you just
set them from the calling code, ie:
workingMemory.setGlobal("myList", arrayList);
You can then use myList in your consequence.
There is no way to use an asserted object in a consequence without binding
it to a variable in one of the conditions.
cheers
Steve
On 1/8/07, Joel G. Rivera-González <el_pio at yahoo.com> wrote:
>
> ok..after playing a while with this global thing...i found out that global
> variables cant be asserted...
>
> any other idea of how to use an asserted arrayList on the consequence
> without writing it on the conditions?
>
> Joel G. Rivera-Gonzalez
> PRT
>
> "The first 90% of a project takes 90% of the time, the last 10% takes the
> other 90% of the time" - Murphy's Law
>
> ----- Original Message ----
> From: Joel G. Rivera-González <el_pio at yahoo.com>
> To: drools <rules-users at lists.jboss.org>
> Sent: Sunday, January 7, 2007 10:48:50 AM
> Subject: Re: Fw: [rules-users] rules questions...
>
> thanks for your input...this is exactly what i was looking for !
>
> :)
>
> Joel G. Rivera-Gonzalez
> PRT
>
> "The first 90% of a project takes 90% of the time, the last 10% takes the
> other 90% of the time" - Murphy's Law
>
> ----- Original Message ----
> From: Steven Williams <stevenw at objectconsulting.com.au>
> To: Joel G. Rivera-González <el_pio at yahoo.com>
> Cc: rules-users at lists.jboss.org
> Sent: Sunday, January 7, 2007 3:53:34 AM
> Subject: Re: Fw: [rules-users] rules questions...
>
> Hi Joel,
>
> I think you should rather use a global for the ArrayList:
>
> global java.util.List myList
>
> rule "cancel_menu"
> when
> MegaTransferObject(other_EffectiveOrderTypeDsl != null,
> other_EffectiveOrderTypeDsl == Constants.NEW_OPEN_ORDER_TYPE)
> not MegaTransferObject(orders_FkOrderStatusId != null,
> orders_FkOrderStatusId == Constants.PENDING_TO_BE_SUBMITTED_ORDER_STATUS)
>
> then
> myList.add(new String[]{Constants.SERVICE_ASSURANCE_TREE_MENU_DSL,
> Constants.SERVICE_ASSURANCE_MENU_CANCEL});
> end
>
> btw - you don't need to put "and" at the end of each constraint.
>
> cheers
> Steve
>
> On 1/7/07, Joel G. Rivera-González <el_pio at yahoo.com> wrote:
> >
> > this is a one of my rules...
> > rule "cancel_menu"
> > when
> > arrayList : ArrayList()
> > MegaTransferObject(other_EffectiveOrderTypeDsl != null,
> > other_EffectiveOrderTypeDsl == Constants.NEW_OPEN_ORDER_TYPE) and
> > not MegaTransferObject(orders_FkOrderStatusId != null,
> > orders_FkOrderStatusId == Constants.PENDING_TO_BE_SUBMITTED_ORDER_STATUS)
> > then
> > arrayList.add(new String[]{
> > Constants.SERVICE_ASSURANCE_TREE_MENU_DSL ,
> > Constants.SERVICE_ASSURANCE_MENU_CANCEL});
> > end
> >
> > i do an assert of an empty arrayList...
> > when i use this arrayList : ArrayList() on the when the rule fire an
> > error...why?
> > will the ArrayList be the same on all the rules (i think it will but
> > want to make sure)
> >
> > Joel G. Rivera-Gonzalez
> > PRT
> >
> > "The first 90% of a project takes 90% of the time, the last 10% takes
> > the other 90% of the time" - Murphy's Law
> >
> > ----- Original Message ----
> > From: Kumaran S < kumaran.shanmuhan at gmail.com>
> > To: Joel G. Rivera-González <el_pio at yahoo.com>
> > Sent: Friday, January 5, 2007 5:42:01 PM
> > Subject: Re: [rules-users] rules questions...
> >
> > getResourceAsStream(ruleDrl) expects to find a drl file based on the
> > location represented by " ruleDrl". It should be noted that the location
> > should be accessible from the CLASSPATH. You could get a null pointer
> > exception, if the location is not accessible from your CLASSPATH.
> >
> > On 1/5/07, Joel G. Rivera-González <el_pio at yahoo.com> wrote:
> >
> > > Trying to figure out the new rule system...
> > > but it doesnt work...
> > >
> > > This is my rule:
> > >
> > > package com.prtc.struts.rules
> > >
> > > import com.prtc.db.MegaTransferObject
> > > import java.util.ArrayList
> > > import com.prtc.struts.Constants
> > >
> > > rule "cancel_menu"
> > > when
> > > megaTO : MegaexistMegaTransferObject()
> > > megaTO(other_EffectiveOrderTypeDsl != null) and
> > > megaTO(other_EffectiveOrderTypeDsl ==
> > > Constants.NEW_OPEN_ORDER_TYPE ) and
> > > megaTO(orders_FkOrderStatusId != null) and
> > > megaTO(orders_FkOrderStatusId ==
> > > Constants.PENDING_TO_BE_SUBMITTED_ORDER_STATUS)
> > >
> > > then
> > > System.out.println("Hello");
> > > end
> > >
> > > part of my code:
> > > InputStreamReader ir = new InputStreamReader(
> > > RuleBuilderMgr.class.getClassLoader().getResourceAsStream(ruleDrl));
> > > //the null pointer is from this line.
> > > builder.addPackageFromDrl(ir);
> > >
> > > this is the result:
> > > 7661 [main] DEBUG org.apache.commons.jci.compilers.JaninoJavaCompiler
> > > - compiling com.prtc.struts.rules.Rule_cancel_menu_0
> > > 7942 [main] DEBUG org.apache.commons.jci.compilers.JaninoJavaCompiler
> > > - compile com.prtc.struts.rules.Rule_cancel_menu_0
> > > 8062 [main] DEBUG org.apache.commons.jci.compilers.JaninoJavaCompiler
> > > - compiled com.prtc.struts.rules.Rule_cancel_menu_0
> > > 8062 [main] DEBUG org.apache.commons.jci.compilers.JaninoJavaCompiler - compiling
> > > com.prtc.struts.rules.Rule_cancel_menu_0ConsequenceInvoker
> > > 8072 [main] DEBUG org.apache.commons.jci.compilers.JaninoJavaCompiler
> > > - compile com.prtc.struts.rules.Rule_cancel_menu_0ConsequenceInvoker
> > > 8092 [main] DEBUG org.apache.commons.jci.compilers.JaninoJavaCompiler
> > > - compiled com.prtc.struts.rules.Rule_cancel_menu_0ConsequenceInvoker
> > >
> > > 8102 [main] FATAL
> > > com.prtc.struts.util.ConstructServiceAssuranceTreeMenu - Exception in
> > > ShowIspServiceAssuranceAction.execute -->
> > > java.lang.NullPointerException
> > > 8102 [main] FATAL
> > > com.prtc.struts.util.ConstructServiceAssuranceTreeMenu -
> > > java.lang.NullPointerException
> > > at
> > > com.prtc.struts.util.ConstructServiceAssuranceTreeMenu.construct(
> > > ConstructServiceAssuranceTreeMenu.java:74)
> > > at com.prtc.lc.rules.managers.RuleTester.test1(RuleTester.java
> > > :299)
> > > at com.prtc.lc.rules.managers.RuleTester.main(RuleTester.java:54)
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > > Joel G. Rivera-Gonzalez
> > > PRT
> > >
> > > "The first 90% of a project takes 90% of the time, the last 10% takes
> > > the other 90% of the time" - Murphy's Law
> > >
> > > _______________________________________________
> > > rules-users mailing list
> > > rules-users at lists.jboss.org
> > > https://lists.jboss.org/mailman/listinfo/rules-users
> > >
> > >
> > >
> >
> >
> > --
> > Give me a lever long enough... Single-handed, I shall move the world!
> >
> >
> >
> > _______________________________________________
> > rules-users mailing list
> > rules-users at lists.jboss.org
> > https://lists.jboss.org/mailman/listinfo/rules-users
> >
> >
> >
>
>
> --
> Steven Williams
>
> Supervising Consultant
>
> Object Consulting
> Office: 8615 4500 Mob: 0439 898 668 Fax: 8615 4501
> stevenw at objectconsulting.com.au
> www.objectconsulting.com.au
>
> consulting | development | training | support
> our experience makes the difference
>
> _______________________________________________
> rules-users mailing list
> rules-users at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/rules-users
>
>
> _______________________________________________
> rules-users mailing list
> rules-users at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/rules-users
>
>
>
--
Steven Williams
Supervising Consultant
Object Consulting
Office: 8615 4500 Mob: 0439 898 668 Fax: 8615 4501
stevenw at objectconsulting.com.au
www.objectconsulting.com.au
consulting | development | training | support
our experience makes the difference
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/rules-users/attachments/20070108/a0c6050a/attachment.html
More information about the rules-users
mailing list