Adiran,
Could we have a page somewhere in the Wiki ? With links to official UEL expressions maybe, and our specificities if any. My
apologies if it aready exists :o)
Jacques
From: "Adrian Crum" <adrian.c...@yahoo.com>
Brett,
In the past, the OFBiz scripting languages (screen widgets and minilang) used a home-grown expression parser that only recognized
and manipulated strings. We have converted the home-grown expression parser over to the Unified Expression Language so that more
powerful expressions can be used. So, you have to look at it from an expression standpoint, not a Map or database or String
standpoint.
Identifiers in UEL expressions must follow Java naming conventions. Your
example:
<set field="passedVal"
from-field="someMap.${surveyResponseOptionAnswer.surveyOptionSeqId}"/>
which evaluates to:
<set field="passedVal" from-field="someMap.000"/>
would be similar to:
String passedVal = someObject.000;
in Java. Try creating a class property in Java named "000" - it won't let you.
The benefit of using the UEL is we can create expressions like:
<set field="extendedCost" value="${orderItem.cost * orderItem.quantity}"/>
which is something we couldn't do before.
-Adrian
--- On Tue, 1/20/09, Brett Palmer <brettgpal...@gmail.com> wrote:
From: Brett Palmer <brettgpal...@gmail.com>
Subject: Re: New Syntax to preserve String for 000 value using FlexibleString
expander
To: dev@ofbiz.apache.org
Date: Tuesday, January 20, 2009, 9:47 PM
Adrian,
Thanks for the reply.
Is there a reason we default to converting from a String to
a Long? The
example I gave is reading records from a VARCHAR field in a
database. It
seems like that should be a String be default. I'm
probably not
understanding the benefit for the automatic cast.
Brett
On Tue, Jan 20, 2009 at 12:06 PM, Adrian Crum
<adri...@hlmksw.com> wrote:
> Try
>
> <Set field="passedVal">
>
from-field="someMap._${surveyResponseOptionAnswer.surveyOptionSeqId}"/>
>
> or
>
> <Set field="passedVal">
from-field="someMap["_" +
>
surveyResponseOptionAnswer.surveyOptionSeqId]"/>
>
> The idea is to make the key something other than
numeric.
>
> If keys like "_000" cause a problem
elsewhere in the code, then try
>
> <Set field="passedVal">
>
from-field="someMap[str:toString(surveyResponseOptionAnswer.surveyOptionSeqId)]"/>
>
> -Adrian
>
>
>
> Brett Palmer wrote:
>
>> Here is an example:
>>
>> <Set field="passedVal"
>>
from-field="someMap.${surveyResponseOptionAnswer.surveyOptionSeqId}"
>> />
>>
>>
>> Where surveyOptionSeqId is 000 but translates to
0. Then doesn't
>> match the key value in the map.
>>
>> Brett
>>
>>
>> On 1/20/09, Adrian Crum <adri...@hlmksw.com>
wrote:
>>
>>> Brett,
>>>
>>> Could you provide a code snippet?
>>>
>>> -Adrian
>>>
>>> Brett Palmer wrote:
>>>
>>>> I saw some posts on this earlier but not
sure of the exact syntax. We
>>>> have
>>>> some SimpleMethod that use index keys like
"000", "001", etc. This are
>>>> being converted to longs and no longer
work in our Maps. What is the
>>>> SimpleMethod syntax to preserve the String
value "000" instead of
>>>> changes
>>>> to
>>>> a long.
>>>>
>>>>
>>>> Brett
>>>>
>>>>
>>