Input modifying algos

An input modifying algo is an algo that manipulates its input objects (e.g. adds annotations) without producing a new object. This behavior differs from the rest of the tools and requires special handling in the workflow.

In the workflow an input modifying algo is marked with the symbol (Image modified01) (figure 9.12).

Image workflow_inputmodifyingalgo
Figure 9.12: Input modifying algos are marked with the letter M.

Restrictions apply to workflows that contain input modifying algos. For example, branches are not allowed where one of the elements is a modifying algo (see figure 9.13), as it cannot be guaranteed which workflow branch will be executed first, which in turn means that different runs can result in production of different objects. Hence, if a workflow is constructed with a branch where one of the succeeding elements is a modifying algo, a message in red letters will appear saying "Branching before a modifying tool can lead to non-deterministic behavior". In such a situation the "Run" and "Create Installer" buttons will be disabled (figure 9.13).

Image workflow_inputmodifyingalgo_branch
Figure 9.13: A branch containing an input modifying algo is not allowed in a workflow.

The problem can be solved by resolving the branch by putting the elements in the right order (with respect to order of execution). This is shown in figure 9.14 that also shows that the "Run" and "Create Installer" buttons are now enabled. In addition, a message in green letters has appeared saying "Validation successful".

Image workflow_inputmodifyingalgo_branchsolved
Figure 9.14: A branch containing an input modifying algo has been resolved and the workflow can now be run or installed.

As input modifying algos only modify existing objects without producing a new object, it is not possible to add a workflow output element directly after an input modifying algo (figure 9.15). A workflow output element can only be added when other algos than input modifying algos are included in the workflow.

Image workflow_inputmodifyingalgo_nooutput
Figure 9.15: A workflow output element cannot be added if the workflow only contains an input modifying algo.

If the situation occur where more input modifying algos are used succeedingly, a copy of the object will be created in addition to using the modified object as input at the next step of the chain (see figure 9.16). In order to see this output you must right click on the output option (marked with a red arrow in figure 9.16) and select "Use as Workflow Output".

Image workflow_inputmodifyingalgo_makeoutput
Figure 9.16: A workflow output element can be added when more than one input modifying algo is used succeedingly (despite that the workflow only contains input modifying algos). Select "Use as Workflow Output" to make a copy of the output.

When running a workflow where a workflow output has been added after the first input modifying algo in the chain (see figure 9.17) the output arrow is marked with "copy" to indicate that this is a copy of the result that is used as input at the next level in the chain. When running this workflow you will be able to see the copy of the output from the first input modifying algo in the Navigation Area (at the destination that you selected when running the workflow).

Image workflow_inputmodifyingalgo_makeoutput2
Figure 9.17: A workflow output element can be added when more than one input modifying algo is used succeedingly (despite that the workflow only contains input modifying algos). Note that this output is marked with "copy" to indicate that this is a copy of the result that is used as input at the next level in the chain.