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