Workspace 6.21.5
Understanding Inputs and Outputs

As we saw in the previous tutorial, when working with nested workflows, you need to be able to pass data into and out of nested workflows. The WorkspaceInput and WorkspaceOutput operations are a means of achieving this. A WorkspaceInput operation represents one input to the nested workflow. Similarly, a WorkspaceOutput operation represents one output of the nested workflow. You can add as many WorkspaceInput and WorkspaceOutput operations as you wish.

Inside a nested workflow - showing it's inputs, outputs and an operation
Top level view of a nested workflow - showing its inputs and outputs

When you add a WorkspaceInput or WorkspaceOutput to a workflow, it will be given a default name such as Input or Output and its label will also show something similar. It will also have a default data type of int, which might or might not be what you want. You should get into the habit of changing the data type, data name and the operation label as early as possible since it is easy to forget to go back and do this later. This can be achieved by right-clicking on the operation to bring up a context menu, and selecting "Properties".

The properties menu
Changing the label in the properties dialog

Navigating to the "Data" tab will allow you to set the data type and data name of the workflow input/output that the operation represents. Any data type that Workspace supports can be chosen, and data names can be anything as long as the following restrictions are adhered to:

  • The name of an input must be different to any existing input names and the name of an output must be different to any existing output names. It is allowable to use the same name for an input and an output.
  • The name Dependencies cannot be used for inputs or outputs. That is a reserved name, since all operations have an input and an output with that name already.
  • Names should generally consist of some combination of upper or lower case letters, numbers, spaces, hyphens and/or underscores. Other characters are not formally supported and should be avoided.
Changing the data type in the properties dialog
Note
By default, the data name will be the same as the label. Simply uncheck the "Use label as data name" checkbox to modify the name.

There are two ways to create a WorkspaceInput or WorkspaceOutput operation.

  1. By finding it in the operation catalogue, dragging it from there and dropping it onto your workflow.
  2. By right-clicking on any existing operation input or output, and selecting the "Create top-level input / output" option in the context menu.
    Creating a WorkspaceOutput from the context menu
    This will create a WorkspaceOutput, connect it to the selected output automatically, and even have its data type, data name and operation label set.

You can reorder the nested workflow inputs and outputs through the context menu. Right-click on the nested workflow to bring it up. Note that you won't see the re-order option unless you have at least two inputs or outputs to swap (in this example there is only one output so there is no menu item for swapping outputs).

Re-ordering the workflow inputs

Click on the Name or Data Type header to sort the inputs/outputs alphabetically (see below) or drag the rows to where you want them.

Re-ordering the workflow inputs by clicking on the Name header

Limitation

  • It is not possible at this time to create array inputs for a workflow. An alternative is to set the data type to ObjectArray and then extract the components you want inside the workflow, but this can be complex to set up robustly.