Workflow

A workflow describes a set of **steps** and the **dependencies** between those steps. When a step produces output that will be consumed by a second step, the first step is a dependency of the second step. When there is a dependency, the workflow engine must execute the preceding step and wait for it to successfully produce output before executing the dependent step. If two steps are defined in the workflow graph that are not directly or indirectly dependent, these steps are **independent**, and may execute in any order or execute concurrently. A workflow is complete when all steps have been executed. Dependencies between parameters are expressed using the source field on workflow step input parameters and [workflow output parameters](#WorkflowOutputParameter). The source field expresses the dependency of one parameter on another such that when a value is associated with the parameter specified by source, that value is propagated to the destination parameter. When all data links inbound to a given step are fufilled, the step is ready to execute. ## Workflow success and failure A completed step must result in one of success, temporaryFailure or permanentFailure states. An implementation may choose to retry a step execution which resulted in temporaryFailure. An implementation may choose to either continue running other steps of a workflow, or terminate immediately upon permanentFailure. * If any step of a workflow execution results in permanentFailure, then the workflow status is permanentFailure. * If one or more steps result in temporaryFailure and all other steps complete success or are not executed, then the workflow status is temporaryFailure. * If all workflow steps are executed and complete with success, then the workflow status is success. # Extensions ScatterFeatureRequirement and SubworkflowFeatureRequirement are available as standard extensions to core workflow semantics.

Members

Mixins

__anonymous
mixin genCtor
Undocumented in source.
__anonymous
mixin genIdentifier
Undocumented in source.
__anonymous
mixin genDumper
Undocumented in source.

Static variables

class_
auto class_;

Variables

cwlVersion_
Either!(None, CWLVersion) cwlVersion_;

CWL document version. Always required at the document root. Not required for a Process embedded inside another Process.

doc_
Either!(None, string) doc_;

A long, human-readable description of this process object.

hints_
Either!(None, Either!(InlineJavascriptRequirement, SchemaDefRequirement, DockerRequirement, SoftwareRequirement, InitialWorkDirRequirement, EnvVarRequirement, ShellCommandRequirement, ResourceRequirement, SubworkflowFeatureRequirement, ScatterFeatureRequirement, MultipleInputFeatureRequirement, StepInputExpressionRequirement, Any)[]) hints_;

Declares hints applying to either the runtime environment or the workflow engine that may be helpful in executing this process. It is not an error if an implementation cannot satisfy all hints, however the implementation may report a warning.

id_
Either!(None, string) id_;

The unique identifier for this process object.

inputs_
InputParameter[] inputs_;

Defines the input parameters of the process. The process is ready to run when all required input parameters are associated with concrete values. Input parameters include a schema for each parameter which is used to validate the input object. It may also be used to build a user interface for constructing the input object. When accepting an input object, all input parameters must have a value. If an input parameter is missing from the input object, it must be assigned a value of null (or the value of default for that parameter, if provided) for the purposes of validation and evaluation of expressions.

label_
Either!(None, string) label_;

A short, human-readable label of this process object.

outputs_
WorkflowOutputParameter[] outputs_;

Defines the parameters representing the output of the process. May be used to generate and/or validate the output object.

requirements_
Either!(None, Either!(InlineJavascriptRequirement, SchemaDefRequirement, DockerRequirement, SoftwareRequirement, InitialWorkDirRequirement, EnvVarRequirement, ShellCommandRequirement, ResourceRequirement, SubworkflowFeatureRequirement, ScatterFeatureRequirement, MultipleInputFeatureRequirement, StepInputExpressionRequirement)[]) requirements_;

Declares requirements that apply to either the runtime environment or the workflow engine that must be met in order to execute this process. If an implementation cannot satisfy all requirements, or a requirement is listed which is not recognized by the implementation, it is a fatal error and the implementation must not attempt to run the process, unless overridden at user option.

steps_
Either!(WorkflowStep[]) steps_;

The individual steps that make up the workflow. Each step is executed when all of its input data links are fufilled. An implementation may choose to execute the steps in a different order than listed and/or execute steps concurrently, provided that dependencies between steps are met.

Meta