Business Workflow Task#
A task is a visual block that performs a specific function. In programming language terms, it can be described as a function or a method since it has a name, input and output values, and performs an action. The block can be duplicated, collapsed, deleted and disabled.
- Task Icon
- Task Caption
- Task Branch
Behavior#
If the task executes successfully, other tasks within the task branch will also be executed. If it fails, an error is thrown.
Task Caption#
Represents the block text and associated fields, which can include special tokens to display inputs or outputs within the block. For example, {{input.Condition}} will show the Task Input as an editable block field. The prefixes input. or output. are required to display inputs or outputs, respectively.
Task Branch#
Some tasks may have branches, allowing other tasks to be added as children. These child tasks will be executed only after the successful completion of the parent task.
Task Options#
Right-clicking on a task provides management and organization options:
- Duplicate: Creates an exact copy of the task. This is useful for tasks that are recurring or similar, allowing you to save time by not having to recreate them from scratch.
- Collapse: Minimizes task details for a cleaner workspace. You can expand the task again whenever you need to access its details.
- Delete: Removes the task permanently. It's ideal for tasks that are no longer relevant or needed.
- Disable: Deactivates the task without deleting it. While the task will not be executed, it remains accessible for future use, allowing you to easily reactivate it when needed.
These options provide flexibility and control, allowing you to tailor your task management system to better suit your needs and preferences.
Inputs and Outputs#
Inputs are defined by a task and can be referenced within that task's own branch using the following syntax: {{$task_name.input_name}}
Consider the following example: If you have an If task named "IfThen_1" with an input called "State", you can reference it in a child task like this: {{$IfThen_1.State}}
For business event tasks like Material.TrackOut.Post, the inputs can be referenced by all tasks, since its branch includes the entire workflow. For example, {{$MaterialTrackOutPost_1.Material}}.
To reference an output, use the same syntax format: {{$task_name.output_name}}.
Note that when referencing a value outside the branch of the task that defines it, it will always be treated as an output.
Note
Syntax Summary:
-
Basic
{{$task_name.input_or_output_name}}- Example:
{{$MaterialTrackOutPost_1.Material}}
-
Accessing Nested Properties
{{$task_name.input_or_output_name.property_1.property_2.[...].property_n}}- Example:
{{$MaterialTrackOutPost_1.Material.LastProcessedResource.Type}}
Settings#
Settings can be used by the task that defines them and referenced inside that task's branch. To do so, use the syntax {{$task_name.setting_name}}. You can override the value of a task setting by defining an input with the same name and type.
Scoped Variables#
Scoped variables exist only within a scope. In a business workflow, this usually means that the variable is accessible only in the branch of the task that declares it, including its children.
User-defined#
You can create or re-assign scoped variables by creating a task input or output with the name $scope.name:
- Input: The scoped variable is only available in that task's branch and its children.
- Output: The scoped variable is only available after the task ends. It's then available for subsequent tasks in the same branch as the task where it was defined.
For example, you can define a scoped variable as an input of IfThen_1 called $scope.MyState, which is a String with value DesiredState. You can then access it in child tasks with {{$scope.MyState}}.
This scoped variable will contain the value DesiredState until the end of the scope is reached or until the variable is re-assigned. You can re-assign it as a new input or output in a child task. If you re-assign it, you will be changing the value for all usages of that variable on subsequent tasks.
However, please note that you cannot change the type of the variable after the initial creation. If you re-assign a scoped variable with a different type, an error will be thrown.
An error will also be thrown if you try to use the scoped variable outside of its scope. In this example, this would be outside of Task1's branch, as it was defined as an input.
Experimental Tasks#
Tasks are marked as experimental when they are still under development and not yet fully mature. These tasks are actively evolving and provided as-is, for this reason it is not recommended for production use, but if used, it is at the user's own risk.
This state will be visually signaled and color-coded within the Workflow Designer, as shown in the example below:







