Fw: [rules-users] rules questions...

Joel G. Rivera-González el_pio at yahoo.com
Sun Jan 7 20:47:36 EST 2007


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

Cc: drools <rules-users at 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 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








_______________________________________________
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/20070107/60c596fa/attachment.html 


More information about the rules-users mailing list