Skip to main content Skip to footer

Best Practice

Flow Parameters

Simplify Your Flow Management

Introducing Parameter settings

- Your solution to common Flow management challenges in distributed systems.

Flow Parameters address the following two use cases:

  1. You want to use the same flow on multiple nodes, but some settings are different
  2. You use the same setting in multiple flows, e.g. credentials for access to some external service, and this setting sometimes changes. An example is a username/password credential where you have to update the password every 6 months. Instead of changing every flow that use that credential you can now use a parameter and update all flows by just changing the parameter.

You first need to create a parameter, this is done on the Parameters page by clicking on + Add Parameter. You then give the parameter a name and specify what data type the parameter has. The data type will control which module settings that can be overridden by this parameter. If you want you can also assign a default value, this is how you implement the second use case above.

Once a parameter has been defined it can be used to override module settings. On the Flows page you select the flow where you want to override some settings, then click on the number in the Modules column. The panel on the right-hand side will now show all modules used in this flow. Go to a module where you want to override a setting and expand the table using the arrow (>) to the left of the module name. Below the module name you will now see a list of settings that can be overridden, and their current values based on the module configuration. To override a setting you click on the pen to the right of the setting and then select one of the available parameters from the list.

If the parameter you selected has a default value this value will now be assigned to this setting whenever you deploy this flows. If you want to reuse the same setting in multiple flows, i.e. the second use case above, this is all you need to do. Just add the same parameter to some other settings in other flows.

If you want to assign different values depending on which node the flow is deployed to, i.e. the first use case above, we have to switch to the Nodes page. Click in the Parameters column on the node for which you want to assign new parameter values. In the panel on the right-hand side you add a parameter to this node by clicking on + Add Parameters. A popup will show all parameters that are currently defined in the system, together with their data type and possible default value.

Go to the parameter you want to use and click on the pen symbol to edit the value for the parameter. You can add multiple parameters at once by editing multiple parameters. When you close the pop-up these parameters will be added to the node, with their unique values for this node. Repeat this process for any nodes where you want to modify some settings.

When parameter values have been added on nodes, these values will replace the corresponding module settings when flows are deployed to the nodes. The mapping between module settings and node specific values is done through the parameter name.

Debugging with parameters

When you run a flow in a remote session in the FlowStudio the settings that are set in the module will be used by default, i.e. the settings you see in the UI. If you want to test your flow with the settings that will be used when deploying the flow to a specific node there is an option on the flow settings tab: Use FlowParameters in remote sessions. When checked the node specific values will be applied based on which node the FlowStudio is currently connected to.

About the author

Goran Appelquist (Ph.D) | CTO

Göran has 20 years experience in leading technology teams. He’s the lead architect of our end-to-end solution and is extremely focused in securing the lowest possible Total Cost of Ownership for our customers.

"Hidden Lifecycle (employee) cost can account for 5-10 times the purchase price of software. Our goal is to offer a solution that automates and removes most of the tasks that is costly over the lifecycle.

My career started in the academic world where I got a PhD in physics by researching large scale data acquisition systems for physics experiments, such as the LHC at CERN. After leaving academia I have been working in several tech startups in different management positions over the last 20 years.

In most of these positions I have stood with one foot in the R&D team and another in the product/business teams. My passion is learning new technologies, use it to develop innovative products and explain the solutions to end users, technical or non-technical."