You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@nifi.apache.org by Chris Lundeberg <cl...@1904labs.com> on 2019/12/12 14:37:51 UTC

Using parameters in 1.10

Hi all

I posted a version of this in slack, but didn't see much traction...
opening it up a bit more here.  Apologies for the repost (for anyone seeing
this twice).

I have a strange issue that I think should work with parameters, but it
doesn't seem to be evaluating correctly.  Just want to see if I am trying
to use this new feature in a way it can't support.  Here is my current
scenario:

I have several schemas stored in the variable registry, per processor
group.  As flowfiles come through our pipeline, I use EL to evaluate the
filename, attach a few bits to it and then create a variable, which is then
evaluated against the variable registry.  As this happens, I match the key
in the variable registry and it pulls the value I want for that given
schema.  So it may look something like this:

In the variable registry I have a key named "myflowfile.inbound.schema" and
its value is "schema123".  As flowfiles come through our pipe, I would use
the update attribute processor and do something like this:

myschema ==
${${filename:substringBefore(".csv"):toLower():append('.schema.inbound')}}

It would evaluate to: myschema == ${myflowfile.inbound.schema}.  Since it
evaluates to an attribute, it will automatically pull the value from the
variable registry, for which now my "myschema" attribute will be attached
to that given flowfile and its value would be "schema123".

Having a hard time getting this scenario to work with parameters.  I read
the docs and it mentioned using literal statements, which didn't seem to
work.  Also I tried a double ##, which should have evaluated to a single #
behind the scenes, but it still evaluated to a double ##.  An example would
be that I would expect:

##{${filename:substringBefore(".csv"):toLower():append('.schema.inbound')}}

To evaluate to #{myflowfile.inbound.schema}, but instead it evaluates to
##{myflowfile.inbound.schema}

Anyone know if this is possible?  Likely I am missing something here.

Thanks!

Chris Lundeberg