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 tofalse
, 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
to100
, with higher numbers being higher priority. Can contain a numeric REL expression that evaluates to a number between1
and100
. - 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>
, oryyyy/MM/dd HH:mm:ss,SSS i
. - DateTimeZone REL expressions should return an date, time, and time zone in the DateTimeZone format.
- String REL expressions can return either the start time in the 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') |