Timing Task Execution
As a developer and object designer, you have various options to influence when tasks should get executed. You can configure tasks to execute at specific intervals, on predefined dates, or depending on the processing status of another task. You can also configure tasks to not executed based on these conditions too.
This topic outlines all available options and, when relevant, it indicates which option best suits a specific purpose. This topic also provides links to the detailed description of each timing option.
This page includes the following:
Executing Tasks at Intervals
You have two options to define recurring tasks. Recurring tasks are tasks that are executed at predefined intervals. Depending on the length of the interval, you can use the following:
- Schedule objects
- Execute Recurring option
Schedule Objects
Schedule objects are containers of tasks that assign those tasks well-structured, predefined intervals in which they will be executed. You use Schedule objects to time the execution of tasks (Workflows, Jobs, Events, Scripts, and so on) in regular periods that are longer then one day.
To further fine-tune the execution intervals of the tasks in a Schedule, you can use Calendars. If the dates designated by the Schedule for task execution are dates that you want to avoid, you can do so by assigning each task a Calendar.
For more information. see:
Execute Recurring Option
You have several options to execute objects manually, Execute Recurring being one of them. This option lets you execute objects at intervals that are shorter than one day. Objects that are executed using this option are displayed in the Tasks list in the Process Monitoring perspective only while they are being executed. Their task type is C_PERIOD.
When you execute a task using this option, you can specify the interval either by defining the execution period and frequency or by assigning a Period object. You can also assign a Calendar to the recurring execution.
For more information, see:
TIME Event Objects
TIME Event objects monitor time and date conditions and, when these conditions are met, they trigger actions. These actions are usually the execution of other objects.
For more information see:
Executing Tasks on Designated Dates
A Calendar object is a container for Calendar Events. A Calendar Event is a set of rules that results in selecting certain days in the Calendar. You assign Calendar Events to tasks to determine the dates on which those should be (or should not be) executed.
For more information, see:
Executing Tasks According to Available Resources
You can determine when a task should be executed depending on the resources that are currently available on your system. For this purpose, you define dependencies among objects using Sync objects. These objects are synchronization mechanisms that coordinate the execution of multiple objects; they regulate the execution flow by consuming and releasing resources. When assigned to executable objects, Sync objects determine when and how those objects will be executed.
Important! When possible, use Schedules instead of Sync objects. While Sync objects are a powerful tools to orchestrate the execution of tasks, the dependencies that they create are visible and more difficult to maintain.
For more information, see:
Timing Task Execution in Workflows
When you insert tasks in a Workflow, you establish the execution order of those tasks by linking them. Usually, a task is executed as soon as its predecessor in the Workflow has finished successfully. However, you can define further conditions that affect when a task should actually start. You do this in the task properties of the tasks.
For more information about task properties, see Task Properties in Workflows.
Using Calendar Conditions
In the Calendar properties tab of each task in the Workflow you can assign the task one or more Calendar Events. These Calendar Events the select dates on which the task should/should not be executed, depending on what you define.
For more information, see:
Using Time Dependencies
In the Time & Dependencies properties tab of each task in the Workflow you can specify time conditions for that task. These time conditions whether the task will be executed or not:
-
Earliest start time
You can prevent a task from executing before a specific time
-
Latest start time
You can define that a task should not be executed at all if it has not started at a specific time
-
Latest end time
You can also prevent a task from executing if it has not ended at a specific time.
For more information, see:
Using Preconditions
You can make the execution of a task dependent on the results of evaluating external situations. For example:
- If a certain file is not available on an external system, the Workflow should wait for a certain amount of time before executing the task
- If a specific message is thrown, the task should be skipped
- If a specific system process is active, the Workflow should go into BLOCKED status
- And so on
You can define preconditions for every task in a Workflow. Preconditions are evaluated before the task is executed. Defining a precondition involves configuring the following:
- The condition to be evaluated.
- The action that should be taken based on the previous evaluation.
- A final action.
For more information, see Conditions, Preconditions, Postconditions.
Runtime Data to Support Scheduling Decisions
To be able to decide how to plan and schedule tasks, you must know their runtimes, that is, how long those tasks need to execute. When configuring an executable object, you can define how to calculate the task estimated runtime based on past real runtimes.
For more information about a task RRT (Real Runtime) and ERT (Estimated Runtime), as well as how to configure the ERRT calculation, see Runtime Page.