Joel,

Could you attach the drl file? I will see what I get in my environment.

cheers
Steve

On 1/8/07, Joel G. Rivera-González < el_pio@yahoo.com> wrote:
i tried that...
this is the error

28703 [main] FATAL com.prtc.struts.util.ConstructServiceAssuranceTreeMenu  - org.drools.rule.InvalidRulePackage: Rule Compilation error Redefinition of formal parameter "arrayList" Exception:1 errors while compiling unit "com/prtc/struts/rules/Rule_pos_baja_feature_menu_0.java"
 
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@objectconsulting.com.au>
To: Joel G. Rivera-González <el_pio@yahoo.com>
Cc: drools <rules-users@lists.jboss.org>
Sent: Sunday, January 7, 2007 8:50:06 PM
Subject: Re: Fw: [rules-users] rules questions...

try

global java.util.ArrayList arrayList;

or

global java.util.List arrayList;

On 1/8/07, Joel G. Rivera-González < el_pio@yahoo.com> wrote:
setting an ArrayList on a global value like this workingMemory.setGlobal("arrayList", menuArray); on the java code and like this on the rule global ArrayList arrayList;

cause the following error:
23304 [main] FATAL com.prtc.struts.util.ConstructServiceAssuranceTreeMenu  - Exception in ShowIspServiceAssuranceAction.execute --> org.drools.rule.InvalidRulePackage: Rule Compilation error Redefinition of formal parameter "arrayList" Exception:1 errors while compiling unit "com/prtc/struts/rules/Rule_pos_baja_feature_menu_0.java"
 


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@objectconsulting.com.au>
To: Joel G. Rivera-González <el_pio@yahoo.com>
Cc: drools <rules-users@lists.jboss.org>
Sent: Sunday, January 7, 2007 6:00:41 PM
Subject: Re: Fw: [rules-users] rules questions...

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@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@yahoo.com>
To: drools < rules-users@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@objectconsulting.com.au>
To: Joel G. Rivera-González < el_pio@yahoo.com>
Cc: rules-users@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@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@gmail.com>
To: Joel G. Rivera-González <el_pio@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@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@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@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@objectconsulting.com.au
www.objectconsulting.com.au

consulting | development | training | support
our experience makes the difference

_______________________________________________
rules-users mailing list
rules-users@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-users


_______________________________________________
rules-users mailing list
rules-users@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@objectconsulting.com.au
www.objectconsulting.com.au

consulting | development | training | support
our experience makes the difference


_______________________________________________
rules-users mailing list
rules-users@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@objectconsulting.com.au
www.objectconsulting.com.au

consulting | development | training | support
our experience makes the difference


_______________________________________________
rules-users mailing list
rules-users@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@objectconsulting.com.au
www.objectconsulting.com.au

consulting | development | training | support
our experience makes the difference