Workflow Definition — Overview

A workflow defines a series of steps (tasks) that are linked to each other and, therefore, build dependencies. One single action triggers the execution of all the tasks within a workflow according to the order defined in it. It is also possible to insert open branches in a workflow (unlinked tasks). Furthermore, not only internal but also external dependencies can be defined. This and the following topics deal with this.

Object Definition

You will find the following information in this topic:

Background/Purpose

A workflow is an object; an object added to a workflow and linked to a predecessor becomes a task with its specific properties. By linking tasks you create relationships between them and open new functions, like Dependencies and Conditions.

The workflow editor in the Process Assembly perspective allows you to build workflows using graphical tools. You insert tasks and rearrange them via drag and drop and link them using connector lines; you can have some tasks run in parallel and others consecutively. You can include any executable in a workflow (Events, File transfers, Groups, Jobs, Notifications, Scripts) and, of course, other workflows.

For each of these tasks you can define properties, thus building the workflow logic. You can for example:

You can then execute workflows manually at any time or schedule them to run at specific times. From the Process Monitoring perspective you monitor its progress and, if necessary, modify the properties of its tasks. If, for example, the execution fails, you can roll back to a specific task.

Special Case: Unlinked Tasks

As a rule, you define the order in which tasks are processed within workflows by linking them with connecting lines. However, there are situations in which you may want to have unlinked tasks in a workflow, that is, tasks without a predecessor/successor.

This applies only to Standard workflows; IF and ForEach workflows are linked automatically and, therefore always have a predecessor/successor.

The following rules apply to tasks in a workflow that are unlinked:

Internal and External Dependencies

Internal dependencies among tasks within a workflow are defined via the connector lines and the settings in the Time & Dependencies tab. However, defining external dependencies is also possible.

For example, you have WORKFLOW_A which contains JOB_A1 and JOB_A2. The internal dependency forces JOB_A1 to complete before JOB_A2 can start.

Now, let's suppose that you also have WORKFLOW_B containing two tasks, namely JOB_B1 and JOB_B2. You need JOB_B1 to wait for JOB_A1 to successfully complete before starting. This is an external dependency and you design it inserting JOB_A1 as such in WORKFLOW_B. It looks like this:

Click to Expand

You will find detailed information on how to define such dependencies here:

See also: