Jim,

The first expression will return false. None of the expressions below will ever 
throw an Exception.

You could even chain them together like ${myAttribute:toLower():length():gt(4)} 
and if myAttribute does not
exist, it will return false, rather than throwing an Exception.

Thanks
-Mark


On Jun 8, 2017, at 9:32 AM, James McMahon 
<jsmcmah...@gmail.com<mailto:jsmcmah...@gmail.com>> wrote:

So then if myAttribute does not even exist in a particular flowFile, the first 
expression will return a null value rather than throw an error. Thank you very 
much Mark. -Jim

On Thu, Jun 8, 2017 at 8:44 AM, Mark Payne 
<marka...@hotmail.com<mailto:marka...@hotmail.com>> wrote:
Jim,

You can use the expression:

${myAttribute:isNull()}

Or, alternatively, depending on how you want to setup the route:

${myAttribute:notNull()}

If you want to check if the attribute contains 'True' somewhere within its 
value,
then you can use:

${myAttribute:contains('True')}

Thanks
-Mark


> On Jun 8, 2017, at 8:19 AM, James McMahon 
> <jsmcmah...@gmail.com<mailto:jsmcmah...@gmail.com>> wrote:
>
> Good morning. I receive HTTP POSTs of various types of files. Some have a 
> particular attribute myAttribute, some do not. I want to route the flowfiles 
> to different workflow paths depending on the presence of this attribute. Can 
> I use RouteAttribute and the expression language to do that, something like 
> this:
>
> hasTheAttributeOfInterest           
> ${anyAttribute("myAttribute":contains('True')}
>
> I ask because the expression guide did not say whether a False is returned or 
> the processor throws an error if the attribute does not exist in the 
> flowfile. I may have missed that. I wanted to see if anyone in the group has 
> experience in this regard?
>
> Thanks in advance for your insights. -Jim



Reply via email to