Thank you Edson,
I liked the solution with matches, it is much cleaner….
-Sergey
From:
rules-users-bounces@lists.jboss.org [mailto:rules-users-bounces@lists.jboss.org]
On Behalf Of Edson Tirelli
Sent: Thursday, July 12, 2007 4:19
PM
To: Rules Users List
Subject: Re: [rules-users] how to
create local variable
It is not possible to assign the result of an arbitrary
method call to a variable right now. So, your best option is probably to do
(please note the use of inline-eval):
rule "SupplierView: Headquarter Supplier Code should end on 25 or 30."
when
$cs : SupplierView(corporate == true, eval( suppCode.substring(4, 6).equals( "25" ) || suppCode.substring(4, 6).equals( "30" ) ) )
then
ValidationErrorFacade.getInstance().registerError($cs, new ValidationError("Headquarter Supplier Code should end on 25 or 30."));
end
A more clean solution is to use "matches"
operator. If your rule states that Supplier Code must END with 25 or 30, you
can do:
rule "SupplierView: Headquarter Supplier Code should end on 25 or 30."
when
$cs : SupplierView(corporate == true, suppCode matches ".*25" || matches ".*30" )
then
ValidationErrorFacade.getInstance().registerError($cs, new ValidationError("Headquarter Supplier Code should end on 25 or 30."));
end
Hope it helps.
[]s
Edson
2007/7/12, Manukyan, Sergey < SManukyan@lear.com>:
Folks,
I have a rule where I am repeating part of it twice : ($cs.getSuppCode().substring(4, 6)), and I would like to replace it with variable… how can I do that? The solution with "in" doesn't worl because it is a java code needed to perform calculations for variable…..
Please see the rule below:
rule "SupplierView: Headquarter Supplier Code should end on 25 or 30."
when
$cs : SupplierView(corporate == true)
eval($cs.getSuppCode().substring(4, 6) == "25" || $cs.getSuppCode().substring(4, 6) == "30")
then
ValidationErrorFacade.getInstance().registerError($cs, new ValidationError("Headquarter Supplier Code should end on 25 or 30."));
end
Thanks,
-Sergey
********************** |
_______________________________________________
rules-users mailing list
rules-users@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-users
--
Edson Tirelli
Software Engineer - JBoss Rules Core Developer
Office: +55 11 3529-6000
Mobile: +55 11 9287-5646
JBoss, a division of Red Hat @ www.jboss.com