PROCESS EQUALS
Description
PROCESS EQUALS matches the variants of a process based on simple expressions. PROCESS EQUALS is less powerful than MATCH_PROCESS_REGEX and MATCH_PROCESS but it is also simpler to use.
Syntax
PROCESS [ ON activity_table.string_column ] [ NOT ] equals [ start ] activity ( to activity )* [ end ]
activity_table.string_column: A string column of an activity table. By default, the activity column of the default activity table is used.
equals: EQUALS | #
start: START | ^ (The case has to match from the start)
end: END | $ (The case has to match till the end)
to: TO | ->
activity: ANY | * | single_activity | grouped_activity
single_activity: [LIKE] activity (Activity name. LIKE allows you to use wildcards in your activity name. LIKE reacts case sensitive.)
grouped_activity: (single_activity, ..., single_activity) (All activities in the list are possible options for this process step, which means that the value in the activity table column has to match one of the listed activities names.)
If the activity name does not exist, then a warning is displayed. In this scenario PROCESS EQUALS will have no matches, and PROCESS NOT EQUALS will match everything.
Empty cases, meaning cases without activities or only null activities, match PROCESS NOT EQUALS.
Null values
Null values in the specified string column are ignored.
Result
PROCESS EQUALS returns for each case whether the activities of this case match or do not match the pattern given by the simple expression. The result is case-based and can be used together with FILTER and CASE WHEN statements or in other contexts in which a condition is expected.
Use Cases
PROCESS EQUALS
can be used for Working Capital Optimization.
Examples
[1] PROCESS EQUALS to filter down to cases where activity 'A' is directly followed by 'B'. Where in the case the activity 'A' is followed by 'B' doesn't matter in this case. | ||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||
|
[2] ANY or short * is placeholder for no activity or an arbitrary number of activities. Therefore in this example all three cases are in the result. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
[3] With END the given pattern has to match directly before the end of the case. | |||||||||||||||||||||||||
| |||||||||||||||||||||||||
|
[4] With START the given pattern has to match directly from the case start. | |||||||||||||||||||||||||
| |||||||||||||||||||||||||
|
[5] PROCESS EQUALS to filter down to cases starting with activity 'A' or 'B', directly followed by 'C': | ||||||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||||
|
[6] It is also possible to use a shorter syntax. The example query is identical to PROCESS EQUALS START 'A' TO 'B' END. | |||||||||||||||||||||||||
| |||||||||||||||||||||||||
|
[7] With LIKE wildcards can be used for the activity names. | |||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||
|
[8] Restricts the result to cases where A isn't directly followed by C. | ||||||||||||||||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||||||||||||||
|
[9] PROCESS EQUALS to filter down to cases where activity 'A1' is directly followed by 'B1' with a custom activity expression. Where in the case the activity 'A1' is followed by 'B1' doesn't matter in this case. | ||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||
|
[10] Filter process equals non-existing activity: Empty result and warning. | ||||||||||||||||||||||
| ||||||||||||||||||||||
|
[11] Example for empty cases (no activities or all activities are null) which match for PROCESS NOT EQUALS. | |||||||||||||||||||||||||||
| |||||||||||||||||||||||||||
|