As your workflow grows it may start feeling a bit unwieldy after a while. To improve the structure of the workflow you can create a subflows from some of the nodes in your workflow. Select some nodes, right-click on one of them and choose Create subflow from selection. This will replace all the nodes that you had selected with what looks like a single node, but is actually a subflow. You can still get at the nodes by right-clicking on the subflow and choosing Edit. This will open the “inside” of the subflow in a new tab. If you want to get back to the flat workflow structure you can right-click on a subflow and choose Expand subflow to get all the nodes back where they were before.
Subflows can also contain yet other subflows so using this feature you can structure your workflow hierarchically.
Most of the time you want your subflow to take in data on some input ports and produce output on some output ports. Each port symbol on the “outside” of the subflow is also represented inside the subflow as a triangular node-like element.
If you want to add a new input or output port simply right-click on an empty area inside the subflow and choose Create input or Create output. A corresponding port will appear on the outside of the subflow. You can connect any data type to the little question mark of the port you just created.
After you have created a subflow you can choose settings for how it should be configured. Right-click on the subflow and select Settings to launch a dialog for editing the current settings.
First of all choose the configuration dialogs that you want to include. The setting is empty by default but you can add any of the configuration dialogs from the nodes in the subflow. Move any nodes that you want from the list of available nodes (left hand side) to the list of selected nodes (right hand side).
You can use this to expose a portion of the configuration options for your subflow, this is helpful to hide some of the underlying details. As an example, starting out from the example workflow from Subflows you might want to expose only the configuration for a single node, such as: Update ADAF with Table and hide everything else.
There are two major modes to choose from: Wizard configuration and Tab configuration. These determine how the configuration dialog will be presented. By default Tab configuration is used. To change mode, simply check or uncheck the checkbox labeled “Configure using wizard”.
The checkbox labeled “Override parameters” is only used for linked subflows (see Linked Subflows) and determine if changed parameters should be stored in the subflow-link or in the workflow file that the subflow-link points to.
After you have created a subflow and edited its settings (See Subflow settings) you can configure it by right-clicking on the subflow and choosing Configure.
Depending on the mode, either a Wizard configuration dialog or a Tab configuration dialog will appear.
This configuration mode organizes the selected node dialogs in tabs. When selected node dialogs include nested subflows their node dialogs will be grouped together in a tab unless there is only one dialog.
Having all selected dialogs available as tabs provides a good overview and makes it possible to quickly select the nodes of interest and configure them.
The tabs are ordered according to the order of selected nodes in Subflow settings.
This configuration mode presents a wizard showing the configuration dialogs for the selected nodes, one at a time. The nodes will be shown in dependency order and the wizard makes sure that every preceding node is executed before each selected node dialog.
Having the preceding nodes executed when configuring is useful when the content of the dialogs depends on data, for example, the column names in the input table.
Locked subflows are executed in one process without generating intermediate files for the purpose of faster execution. Because of this, locked subflows cannot be edited or configured as long as they are locked. They are recognized by the L letter on the subflow block.
Locking and unlocking of subflows is done in the context menu for subflows. It is accessed by right-clicking on the subflow and choosing Locked. A check mark in the Locked context menu item indicates that the subflow is currently locked.
Use locked subflows in attempt to speed up the execution of subflows by avoiding costly disk operations.
Note that much more memory will be used than when executing as usual since the data which would otherwise have been written to disk is kept in memory.