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(a)nds.com>
You could try assigning $item to a local variable and then using
that
within the for loop?****
** **
Thomas****
** **
*From:* rules-users-bounces(a)lists.jboss.org [mailto:
rules-users-bounces(a)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(a)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(a)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(a)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-bl...
Sent from the Drools: User forum mailing list archive at Nabble.com.****
_______________________________________________
rules-users mailing list
rules-users(a)lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-users****
** **
_______________________________________________
rules-users mailing list
rules-users(a)lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-users****
** **
_______________________________________________
rules-users mailing list
rules-users(a)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(a)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(a)lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-users