Paul, We'll have to agree to disagree. :) The "literal" function's purpose allows the user to evaluate an argument that is a literal itself, or another expression, as a literal value, and allow functions to be chained on the result. It's aptly named, in my opinion.
NiFi EL does have a "toString" function, but it's not subjectless. "literal" could be renamed "string", perhaps, but it would introduce confusion with the current "toString" function. On Wed, Aug 24, 2016 at 2:18 AM Paul Nahay <[email protected]> wrote: > Thanks. > > BTW: > > literal > > *Description*: Returns its argument as a literal String value. This is > useful in order to treat a string or a number at the beginning of an > Expression as an actual value, rather than treating it as an attribute > name. Additionally, it can be used when the argument is an embedded > Expression that we would then like to evaluate additional functions against. > > *Subject Type*: No Subject > > *Arguments*: > > - > > *value* : The value to be treated as a literal string, number, or > boolean value. > > > Your function "literal" really should be named "value", since that is what > it does: it interprets its argument as a value, rather than as an attribute > name. A literal in a program is a literal value like 2 or "two". Or, it > should be called "string", if that's what it really produces, even in the > case of the argument being a number. But "literal" is definitely the wrong > name for it. > > Paul > > > -----Original Message----- > From: Jeff > Sent: Aug 23, 2016 2:52 PM > To: Paul Nahay , "[email protected]" > Subject: Re: Can't Chain "count()" with "plus()" > > Paul, > > I refer you to the documentation for count[1], which states: "Aggregate > function that counts the number of non-null, non-false values returned" > > [1] > https://nifi.apache.org/docs/nifi-docs/html/expression-language-guide.html#count > > > On Tue, Aug 23, 2016 at 2:37 PM Paul Nahay <[email protected]> wrote: > >> Thanks. >> >> However, your documentation is lacking, because in your documentation for >> "allDelineatedValues", there is nothing that explains how ":count()" can be >> applied to: >> *Return Type*: Boolean >> meaning, how ":count()" can be applied to each boolean separately to >> produce a "4". >> >> Yes, I understand what it's doing, but your documentation doesn't explain >> what it needs to. If this is true: >> >> *Return Type*: Boolean >> >> then your table with examples with "Value" in the right-hand column >> should have only booleans, not the integer 4 in it. >> >> Paul >> >> -----Original Message----- >> From: Jeff >> Sent: Aug 23, 2016 1:00 PM >> To: Paul Nahay , "[email protected]" >> Subject: Re: Can't Chain "count()" with "plus()" >> >> Hello Paul, >> >> The documentation for allDelineatedValues[1] states that each of the >> resulting values are evaluated against the rest of the Expression. You >> need to use an embedded expression, since you don't want the plus function >> to be evaluated against each split from allDelineatedValues. Try this >> slightly more complex expression: >> >> ${literal(${allDelineatedValues("aaa,bbb,ccc",","):count()}):plus(1)} >> >> [1] >> https://nifi.apache.org/docs/nifi-docs/html/expression-language-guide.html#alldelineatedvalues >> >> On Tue, Aug 23, 2016 at 12:21 PM Paul Nahay <[email protected]> wrote: >> >>> The following NiFi Expression Language construct gives me an error, and >>> I don't understand why: >>> >>> ${allDelineatedValues("aaa,bbb,ccc",","):count():plus(1)} >>> >>> It's fine without the ":plus(1)", but fails with it, with this error: >>> >>> AttributeExpressionLanguageException: >>> Cannot evaluate Expression because it attempts to reference multiple >>> attributes but does not use a reducing function >>> >>> (I am typing the error message above) >>> >>> It would seem like I should be able to add 1 to a count. >>> >>> It's NiFi version 0.6.1.c >>> >>> >>> Paul Nahay >>> 1013 Rosemere Ave. >>> Silver Spring, MD 20904-3008 >>> 301-680-3825 (home) >>> 301-806-9265 (cell) >>> [email protected] >>> >> >> Paul Nahay >> 1013 Rosemere Ave. >> Silver Spring, MD 20904-3008 >> 301-680-3825 (home) >> 301-806-9265 (cell)[email protected] >> >> >> >> > Paul Nahay > 1013 Rosemere Ave. > Silver Spring, MD 20904-3008 > 301-680-3825 (home) > 301-806-9265 (cell)[email protected] > > > > > Paul Nahay > 1013 Rosemere Ave. > Silver Spring, MD 20904-3008 > 301-680-3825 (home) > 301-806-9265 (cell)[email protected] > > > >
