Thanks Jacques!

--- On Sat, 1/24/09, Jacques Le Roux <[email protected]> wrote:

> From: Jacques Le Roux <[email protected]>
> Subject: Re: New Syntax to preserve String for 000 value using FlexibleString 
>  expander
> To: [email protected], "Jacques Le Roux" <[email protected]>
> Date: Saturday, January 24, 2009, 12:06 AM
> Done in http://docs.ofbiz.org/x/Hhk
> Please let me know if it needs more information
> 
> Thanks
> 
> Jacques
> 
> From: "Jacques Le Roux"
> <[email protected]>
> > Thanks Adrian,
> > 
> > I will try, I have some time ahead...
> > 
> > Jacques
> > 
> > From: "Adrian Crum"
> <[email protected]>
> >> Jacques,
> >> 
> >> I was planning on creating a wiki page for the UEL
> and the OFBiz extensions, but it will be a while before I
> have the time to do it.
> >> 
> >> If anyone would like to get one started, there was
> another thread where I posted a link to a JSR-245 PDF file
> that has the UEL syntax specification.
> >> 
> >> OFBiz adds the following extensions to the UEL:
> >> 
> >> 1. ${someList[]} - appends a list element. It is
> converted internally to ${someList['add']} - so that
> syntax could be used as well.
> >> 
> >> 2. ${someList[+0]} - inserts a list element at the
> specified index. It is converted internally to
> ${someList['ins...@0']} - so that syntax could be
> used as well.
> >> 
> >> 3. OFBiz supports variable creation (auto-vivify).
> In the expression ${someMap.anotherMap.mapElement} if
> someMap or anotherMap don't exist, they are created.
> >> 
> >> 4. OFBiz has a number of built-in UEL functions -
> http://api.ofbiz.org/org/ofbiz/base/util/string/UelFunctions.html
> >> 
> >> -Adrian
> >> 
> >> 
> >> Jacques Le Roux wrote:
> >>> 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"
> <[email protected]>
> >>>> 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
> <[email protected]> wrote:
> >>>> 
> >>>>> From: Brett Palmer
> <[email protected]>
> >>>>> Subject: Re: New Syntax to preserve
> String for 000 value using FlexibleString  expander
> >>>>> To: [email protected]
> >>>>> 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
> >>>>> <[email protected]> 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
> <[email protected]>
> >>>>> 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
> >>>>> >>>>
> >>>>> >>>>
> >>>>> >>
> >>>> 
> >>>> 
> >>>> 
> >>>> 
> >>> 
> >>> 
> >> 
> >


      

Reply via email to