hi Thomas,

Yes, there are probably many workarounds, including your proposal, also moving the for loop inside the doSomethingElse() function, but what I'm wondering is what's wrong with this syntax :))

Thank you

2012/1/11 Swindells, Thomas <TSwindells@nds.com>

You could try assigning $item to a local variable and then using that within the for loop?

 

Thomas

 

From: rules-users-bounces@lists.jboss.org [mailto:rules-users-bounces@lists.jboss.org] On Behalf Of Martin A
Sent: 11 January 2012 10:02
To: Rules Users List
Subject: Re: [rules-users] For loop inside a modify block problem

 

hi Michael,

 

All of the fields are public, however they are properties of a super class of Item. I tried with getters, doesn't work either way. 

Still getting: 'no such identifier : $item'. When I remove the for loop, it goes ok, so I think it messes up things.

 

Best regards,

Martin

2012/1/11 Michael Anstis <michael.anstis@gmail.com>

RHS is not DRL syntax but Java or MVEL depending on your dialect.

If "id" is not public you should use it's getter. The same goes for "quantity".



when
    $item : Item(param1 != 0, param2 == 0, !(this instanceof SpecialItem))
    $gsc : SomeBusinessLogic
then

    $gsc.doSomething($item.getId() );
    for (int i = 0; i < $item.getQuantity(); i++) {
        $gsc.doSomethingElse($item.getId() );
    }
    update($gsc);
end



2012/1/11 Martin A <wmlsub@gmail.com>

Hi, Davide,

 

Here is how my rule looks like :

 

when

    $item : Item(param1 != 0, param2 == 0, !(this instanceof SpecialItem))

    $gsc : SomeBusinessLogic

then 

    $gsc.doSomething($item.id);

    for (int i = 0; i < $item.quantity; i++) {

        $gsc.doSomethingElse($item.id);
    }
    update($gsc);

end

 

The above snippet throws an error @ i < $item.quantity, and says 'no such identifier $item'...

I can't figure out what might be causing this.

 

Thanks

 

On Tue, Jan 10, 2012 at 10:08 PM, Davide Sottara <dsotty@gmail.com> wrote:

Did you remember to bind $item to some expression in the LHS ? Maybe you just
called that "item" without the $ :)
Davide

(the original "modify" syntax is still wrong anyway)

--
View this message in context: http://drools.46999.n3.nabble.com/rules-users-For-loop-inside-a-modify-block-problem-tp3648460p3648718.html
Sent from the Drools: User forum mailing list archive at Nabble.com.

_______________________________________________
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

 


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

 




**************************************************************************************
This message is confidential and intended only for the addressee. If you have received this message in error, please immediately notify the postmaster@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
**************************************************************************************

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