Working with Chain Processes

A Chain Process is a call to a Process Definition or Chain Definition inside of a Chain Definition. The attributes of a Chain Process are as follows.

  • Process Definition: The name of the Process Definition or Chain Definition to be called.
  • Precondition: A precondition function that must evaluate to true for the Chain Process to start. If a precondition evaluates to false, the Chain Process is skipped.
  • Parameter Mappings: Process Definition parameters. These can be specified manually, or they can inherit parameters from the Chain or from Chain Processes in previous Steps.
  • Scheduling Parameters: Parameters that specify if, how (on hold or not), when, and with which Queue a process should be started.
  • Raise Events and Wait Events: Events to raise or wait for.
  • Locks: Lets you specify a lock and lock count to wait for.

Scheduling Parameters

You can assign scheduling parameters to the selected Chain Process in the Chain Editor.

You can set the following scheduling parameters.

  • Hold On Submit: Controls whether the Chain Process is placed in Hold status when submitted. Can be true, false, or a Boolean REL expression.
  • Submit Disabled: Lets you disable the submission of the Chain Process. Can be true, false, or a Boolean REL expression.
  • Priority: A number from 1 to 100, with higher numbers being higher priority. Can contain a numeric REL expression that evaluates to a number between 1 and 100.
  • Queue: The name of the default Queue for the Chain Process. Can contain a String REL expression that returns the name (<partition>.<queue>) of a Queue. The <partition> is optional and defaults to GLOBAL.
  • Time Window: A Time Window to limit the starting time of the Chain Process. Can contain a String REL expression that returns the name (<partition>.<timewindow>) of a Time Window. The <partition> is optional and defaults to GLOBAL.
  • Minimum Open Duration: The minimum amount of time the Time Window must be open to allow the Chain Process to execute.
  • Start time: The start time of the Chain Process. If this time is in the past when the parent Step is started, the Chain Process will run immediately. Otherwise, it will wait until the start time has been reached. Can contain a String REL expression that returns a time expression or the start time as a string. Can also hold a DateTimeZone REL expression that returns the start time of the process. See below for more information on time expressions.
  • Ignore Status: If this is checked, the final status of this Chain Process is ignored when evaluating the status of the Step. For example, if a Chain Process with Ignore Status enabled reaches status Error and all other Chain Processes in this Step reach status Completed, the Step will be set to Completed.
  • Step Waiting on Process: If this is not checked, the Step will both ignore the status of the Chain Process and not wait for it to reach a final status.

Note: For SAP Chain Processes, the Queue defines which SAP instance it will run against. SAP Chain Processes require the Queue scheduling parameter or the SAP System parameter to be set, because there is no default Queue for SAP Chain Processes.

Start Time Syntax

The Start time syntax is as follows.

  • HH:mm[:ss]: Fixed start time (24 hour), date relative to the start time of the Step. Seconds are optional. When seconds are not specified, the seconds at submit time are used.
  • +HH:mm[:ss]: Innermost Chain run start plus the specified amount of time. Seconds are optional.
  • <time_expression>: Time expression applied to the start time of the Step.
  • +<time_expression>: Time expression applied to innermost Chain run start.
  • yyyy/MM/dd HH:mm:ss,SSS i: <year>/<month>/<date> <hour>:<minute>:<second>,<millis> <Olsen name for time zone> (for example: 2021/12/24 15:45:59,123 Europe/Paris).
  • =<expression>: REL expression with all of the usual variables available in call scheduling parameters.
    • String REL expressions can return either the start time in the format [+]HH:mm:ss, +<time_expression>, or yyyy/MM/dd HH:mm:ss,SSS i.
    • DateTimeZone REL expressions should return an date, time, and time zone in the DateTimeZone format.

The Step is the parent of the Chain Process on which the scheduling parameter is specified.

Time Expressions

The following time expressions are supported.

  • set <specifier> <value>: Set <specifier> to <value>.
  • add <value> <specifier>: Add <value> to <specifier>. This may propagate.
  • subtract <value> <specifier>: Subtract <value> from <specifier>. This may propagate.
  • truncate <specifier>: Truncate at <specifier>. This will zero everything below <specifier>.

For <specifier>, you can use the following values.

  • Add and subtract: second, minute, hour, day, week, month, year
  • Truncate: second, minute, hour, day, month
  • Set: second, minute, hour, day, day_of_week, day_of_year, week_of_month, month

Plurals with an "s" are accepted (for example, days or weeks).

Note: The days of the week start at 1 for Sunday. The day is always the day of the month. The days of the year start at 1 for January 1st.

You can use English names for days of the week (day_of_week) and month (for example, set day_of_week Monday or set month January). You can also use three-letter abbreviations.

The following are some example time expressions.

  • add 1 minute
  • add 3 seconds
  • set hour 1
  • set day_of_week Mon
  • truncate day
  • subtract 2 days

Raise and Wait Events

You can assign Raise Events and Wait Events to the selected Chain Process in the Chain Editor.

Raise Event Controls

Field Description
Event Definition The event to raise.
Status To Raise On The process status at which to raise the event.
Error Code The error code that should cause the event to be raised.
Raise Comment A comment to leave on the event when it is raised.
When time window The Time Window to use for raising the event.
is The status of the Time Window for the event to be raised.
in time zone The time zone to use for the Time Window.
When expression An expression which, if it evaluates to true, will raise the event if the process has reached the Status To Raise On.

Wait Event Controls

Field Description
Event Definition The event to wait for.
Clears Event When this is checked, the process clears the event, with a clearer comment if specified.
Clearer Comment The comment to leave on the event when it is cleared by the process.
When time window The Time Window to use for the event.
is The status of the Time Window for the event to be attached to the process.
in time zone The time zone to use for the Time Window.
When expression An expression which, if it evaluates to true, will attach the event to the process. For example: =Event.isEventRaised('MyPartition.MyEvent1') || Event.isEventRaised('MyPartition.MyEvent2')