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