Workflow Execution

Execution location

Workflows are designed on factory, but will be executed on the render nodes. All your variables and code should be aware of this point for example: File path data should be built from the render nodes point of view not from factory point of view.

Execution Tree

Lets start with a simple workflow.

execution_tree

This workflow could be interpreted as a tree of tasks.

task_tree

Evaluation

Most of tasks input parameters are evaluated at execution time. By opposition to static value, an evaluated value is a python expression that can access, among others, to global and current task context.

static value            my super value
evaluated example 1     'my super value'
evaluated example 2     'my' + ' super ' + 'value'

Context variables

Global Context

Task related context

Workflow variables

Workflow variables can be acceded from any evaluated expression using 'workflow' object (ex: workflow.workflow_name).

instance_id             current workflow instance id
template_id             workflow template id for current instance
workflow_name           workflow template name for current instance
sequence_id             Sequence id for current instance (if executed from a sequence)
sequence_name           Sequence name for current instance (if executed from a sequence)
sequence_job_id         Job id for current instance (if executed from a sequence)
node_name               Node name executing the current workflow
node_id                 Node id executing the current workflow

Error management

Connecting task red port

Every task has a red port. In case of error.

Connecting home red port

Home red port will be called when an error occurred in any task.