Match Expression stored in a Variable

I have a Pipeline using in different branches the same Mapper for one of the Field
See ScreenShot

I would like to use a Pipeline Variable in my Mapping Expression in order to update/maintain only once my expression

my ORGANISATION Mapping expression looks like this

{match $ORGANISATION {
“H10” => “CC_0001”,
“H11” => “CC_0004”,
“H12” => “CC_0004”,
“H1000” => “CC_0001”,
“H1100” => “CC_0002”,

“” => “CC_ERROR”,
_ => $ORGANISATION}}

How is this possible?

Thank you for your answer

Hello @TLOY_TGA ,

If all of the marked Mappers are the same, you can use Pipeline Execute. That way you will maintain/update only one Mapper.

Best regards,

Bojan Velevski

There are a couple of options I can think of:

  • You can use the eval() function on a parameter to execute the code in the parameter.
    ( ex. eval(_Parm_Expression) )
    But, take notice of the performance note in the documentation.
  • You can create and use an expression library file. There can be a slight learning curve, but for your use case, I think I would choose this option because the size of your expression would probably be easier to read and maintain in a file than in a parameter field.

I’m not sure a pipeline parameter would work for this case. I believe an expression file arrow function is the right way to go. Take a look at the following for a starting point. The “string.expr” gives an example of an arrow function that uses the “match” operator.

1 Like

This is not a challenge… just sharing an example :slight_smile:
Community.9634.slp (3.6 KB)

I believe an expression file arrow function is the right way to go

I agree completely.

Thanks for the example Del - I was thinking of this differently. Agree that eval would work - but performance would be seriously impacted.