Hi, often I have a need to calculate a value and then use it several places throughout the pipeline. It gets a little ugly, because using pass-through, I often end up with something like $original.original.original.original.THISTERM. Is there any better way to do that?..some syntax to reference THISTERM wherever it is in the hierarchy? Like with XML, I can use ‘//THISTERM’
Well, if I have this in one Mapper Snap:
, and then I have that Mapper Snap followed by a second Mapper Snap, in which I have this:
,then in the output view of the second Mapper Snap I get this:
I’m not sure that’s what you needed, but I guess, FWIW
Sometimes it’s useful to have a parent pipeline that executes a child pipeline and passes some values like these as parameters to the child. Then the child can reference them anytime (_parm) without having to keep passing the value along from one snap to the next. Especially useful when pipeline is doing things like document-to-binary where you can’t easily pass the values along.
Yes, I do that when I can.
That’s helpful. Thanks!
Depending on your use case you can try the expression libraries too.
I’ve created a couple of “helper” libraries that calculate things like File Paths which vary depending on the project or user or pipeline that’s calling them and then store the function in an expression library which gets loaded at run time in the pipeline. These can then act like global variables.
eg I can then use “lib.helpers.file_path” in any snap and it’s always going to be correct and I never have to traverse the $original.original.original tree (something which gets very messy when you add another snap into the flow)
I’ve been looking for that…How do you create expression libraries? I don’t recall seeing that anywhere. That would be really helpful for file paths that vary based on the snaplex being used.