Changing parameter values in easymorph files

Hi,

We are building a data warehouse and use EasyMorph to populate it. We have created separate small data flows, 1 for each reference table in the datawarehouse (1 file per flow so that we can run the flow individually on the server).
We have 1 Main flow (separate easymorph file) that lists all morph files and executes them using an iteration.
In the separate flows, we have parameters like “database_connector_staging”, “S3_bucket”, etc.

Is there a quick way to change all parameter values in all subflows (= the separate files) easily?
I know that when we execute the iteration, the parameters in the separate files are overwritten, so when we we move from dev to test to production, we simply have to run our main flow and set the parameter values to these of the environment we are using to load all reference tables.

However, if we want to change all parameter values in all individual flows (for testing reasons in different environments), we would have to set them manually.
Therfore my question, is there a quick way to do a find replace of parameter values in the subflows ?
This would save me a lot of time :slightly_smiling_face:

Other question: For this use case, it would be easy if we could put all subflows in a separate module in 1 easymorph file (which is possible). For example: all reference tables that have to be loaded in the staging layer of the datawarehouse.
This option however, does not allow for running a separate module on the server ? We really have to be able to populate 1 reference table for instance e.g. in case of errors or updates.
Therefore also my earlier question about disabeling all actions in modules in 1 single click.

Thanks !

You can define parameters in external files and then simply switch external file name to apply another set of parameters. See this topic for more details: Configure Projects (Variables, Filenames ...) from Outside - #2 by dgudkov

If you run modules using iterations, use an optional parameter with a single module name. In the main module with a list of actions have a "Filter on condition" action that keeps only one module if the parameter is not empty. If it's empty then it keeps the list of morph projects as is. In this case if you need to run the entire workflow, you leave the parameter empty. If you need to run only one particular workflow, you specify the name of the workflow using the parameter.

As a further development of this method, you can specify multiple .morph names by separating them with a comma (or another delimiter).

Hi,

Thanks for your answer. What I actually meant by replacing parameter values was a replace in the EasyMorph files without calling those project. I just have to reset the parameter value in these files like I would do when editing them via the parameter window. Is there a way to do it ?

So what the automatic replace should do is opening the morph file, change the parameter values and save the morph file.

Thanks !
Nikolaas

A .morph file is just an XML file. You can replace XML values and attributes using XSLT and the “XSLT” action in EasyMorph.

Hi Dmitry,

Thanks but I have no knowledge of XSLT. I have tried to read in an EasyMorph file using the XML-import action, changed the parameter values, exported it back to XML and changed the extension back to .morph.
Unfortunately, I was not able to open the morph file after this operation. Is there a way to do it like that but maybe I have to change import and export settings ?
Could you maybe post a simple example ?

Thanks !
Nikolaas

Hi Dmitry,

Any thoughts about this ?

Thanks !

I don’t have an example and am not an expert in XLST either. Try learning a bit of XSLT (you only need to change an attribute value) or wait until someone posts an example.