NiFi Expression Language in UpdateAttribute

classic Classic list List threaded Threaded
5 messages Options
Reply | Threaded
Open this post in threaded view
|

NiFi Expression Language in UpdateAttribute

Russell Bateman-2
I wnat to create an attribute, format-type, which I hoped would be set based on the in-coming flowfile name:

    ${ ${filename:endsWith( 'xml' )} : ifElse( 'XML', 'JSON' ) }

If the in-coming flowfile name is sample.xml, the result is nevertheless and always

   
format-type = JSON

I want it to be
XML, obviously. What have I screwed up in my NEL syntax?

(Yes, I have tried taking out all the white space.)

Thanks,
Russ
Reply | Threaded
Open this post in threaded view
|

Re: NiFi Expression Language in UpdateAttribute

Bryan Bende

On Thu, Jun 11, 2020 at 10:14 AM Russell Bateman <[hidden email]> wrote:
I wnat to create an attribute, format-type, which I hoped would be set based on the in-coming flowfile name:

    ${ ${filename:endsWith( 'xml' )} : ifElse( 'XML', 'JSON' ) }

If the in-coming flowfile name is sample.xml, the result is nevertheless and always

   
format-type = JSON

I want it to be
XML, obviously. What have I screwed up in my NEL syntax?

(Yes, I have tried taking out all the white space.)

Thanks,
Russ
Reply | Threaded
Open this post in threaded view
|

Re: NiFi Expression Language in UpdateAttribute

Shawn Weeks
In reply to this post by Russell Bateman-2

Your syntax is incorrect. Try this instead.

 

${filename:endsWith('xml'):ifElse('XML','JSON')}

 

From: Russell Bateman <[hidden email]>
Reply-To: "[hidden email]" <[hidden email]>
Date: Thursday, June 11, 2020 at 9:15 AM
To: NiFi Users <[hidden email]>
Subject: NiFi Expression Language in UpdateAttribute

 

I wnat to create an attribute, format-type, which I hoped would be set based on the in-coming flowfile name:

    ${ ${filename:endsWith( 'xml' )} : ifElse( 'XML', 'JSON' ) }

If the in-coming flowfile name is sample.xml, the result is nevertheless and always

   
format-type = JSON

I want it to be
XML, obviously. What have I screwed up in my NEL syntax?

(Yes, I have tried taking out all the white space.)

Thanks,
Russ

Reply | Threaded
Open this post in threaded view
|

Re: NiFi Expression Language in UpdateAttribute

Russell Bateman-2
That solves confusion I had after and despite reading the NiFi Expression Language documentation. Having written documentation before, I get why it's never ending and danger-fraught to write "bigger" examples in such documentation, and we resist doing it, but that's what I needed to clear up in my head the combination of how the two constructs, endsWith and ifElse, work together.

Many thanks!

On 6/11/20 8:24 AM, Shawn Weeks wrote:

Your syntax is incorrect. Try this instead.

 

${filename:endsWith('xml'):ifElse('XML','JSON')}

 

From: Russell Bateman [hidden email]
Reply-To: [hidden email] [hidden email]
Date: Thursday, June 11, 2020 at 9:15 AM
To: NiFi Users [hidden email]
Subject: NiFi Expression Language in UpdateAttribute

 

I wnat to create an attribute, format-type, which I hoped would be set based on the in-coming flowfile name:

    ${ ${filename:endsWith( 'xml' )} : ifElse( 'XML', 'JSON' ) }

If the in-coming flowfile name is sample.xml, the result is nevertheless and always

   
format-type = JSON

I want it to be
XML, obviously. What have I screwed up in my NEL syntax?

(Yes, I have tried taking out all the white space.)

Thanks,
Russ


Reply | Threaded
Open this post in threaded view
|

Re: NiFi Expression Language in UpdateAttribute

Andy LoPresto
Russell,

I think it would be fine to include an example like this in the Expression Language Guide. You can submit a PR to add that if you like. 

Andy LoPresto
[hidden email]
[hidden email]
He/Him
PGP Fingerprint: 70EC B3E5 98A6 5A3F D3C4  BACE 3C6E F65B 2F7D EF69

On Jun 11, 2020, at 7:31 AM, Russell Bateman <[hidden email]> wrote:

That solves confusion I had after and despite reading the NiFi Expression Language documentation. Having written documentation before, I get why it's never ending and danger-fraught to write "bigger" examples in such documentation, and we resist doing it, but that's what I needed to clear up in my head the combination of how the two constructs, endsWith and ifElse, work together.

Many thanks!

On 6/11/20 8:24 AM, Shawn Weeks wrote:
Your syntax is incorrect. Try this instead.
 
${filename:endsWith('xml'):ifElse('XML','JSON')}
 
From: Russell Bateman [hidden email]
Reply-To: [hidden email] [hidden email]
Date: Thursday, June 11, 2020 at 9:15 AM
To: NiFi Users [hidden email]
Subject: NiFi Expression Language in UpdateAttribute
 
I wnat to create an attribute, format-type, which I hoped would be set based on the in-coming flowfile name:

    ${ ${filename:endsWith( 'xml' )} : ifElse( 'XML', 'JSON' ) }

If the in-coming flowfile name is sample.xml, the result is nevertheless and always

    
format-type = JSON

I want it to be 
XML, obviously. What have I screwed up in my NEL syntax?

(Yes, I have tried taking out all the white space.)

Thanks,
Russ