nifi-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Juan Sequeiros <helloj...@gmail.com>
Subject Re: Detect whether a flowfile has a particular attribute
Date Thu, 08 Jun 2017 16:26:35 GMT
Jim,

This might be related and coincidentally today we were talking with a
coworker about the "advanced" button of UpdateAttribute and its ability to
set attributes based on conditions.
It's pretty powerful. [1]
It might come in useful for your efforts.

[1]
https://nifi.apache.org/docs/nifi-docs/components/org.apache.nifi/nifi-update-attribute-nar/1.2.0/org.apache.nifi.processors.attributes.UpdateAttribute/index.html

On Thu, Jun 8, 2017 at 9:54 AM James McMahon <jsmcmahon3@gmail.com> wrote:

> I do understand now. Thank you very much Mark. -Jim
>
> On Thu, Jun 8, 2017 at 9:34 AM, Mark Payne <markap14@hotmail.com> wrote:
>
>> 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 <jsmcmahon3@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 <markap14@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 <jsmcmahon3@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
>>>
>>>
>>
>>
>

Mime
View raw message