Applies to: CELONIS 4.0 CELONIS 4.2 CELONIS 4.3 CELONIS 4.4 CELONIS 4.5 CELONIS 4.6 CELONIS 4.7
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.activity_column ] [ NOT ] equals [ start ] activity ( to activity )* [ end ]
- activity_column: string column joinable to the activity table (Since: CELONIS 4.6)
- 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)
- grouped_activity: single_activity (, single_activity )*
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. (Since: CELONIS 4.6)
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.
Query
Filter
FILTER PROCESS EQUALS 'A' to 'B';
Column1
"Table1"."CASE_ID"
Column2
"Table1"."ACTIVITY"
[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.
Query
Filter
FILTER PROCESS EQUALS 'A' to ANY to 'C';
Column1
"Table1"."CASE_ID"
Column2
"Table1"."ACTIVITY"
Input
Table1
CASE_ID : STRING | ACTIVITY : STRING | TIMESTAMP : DATE |
---|---|---|
'1' | 'A' | Tue Jan 01 2019 13:00:00.000 |
'1' | 'C' | Tue Jan 01 2019 13:00:02.000 |
'2' | 'A' | Tue Jan 01 2019 13:00:00.000 |
'2' | 'B' | Tue Jan 01 2019 13:00:02.000 |
'2' | 'C' | Tue Jan 01 2019 13:00:04.000 |
'3' | 'A' | Tue Jan 01 2019 13:00:00.000 |
'3' | 'B' | Tue Jan 01 2019 13:00:02.000 |
'3' | 'B' | Tue Jan 01 2019 13:00:04.000 |
'3' | 'C' | Tue Jan 01 2019 13:00:06.000 |
[3] With END the given pattern has to match directly before the end of the case.
Query
Filter
FILTER PROCESS EQUALS 'A' END;
Column1
"Table1"."CASE_ID"
Column2
"Table1"."ACTIVITY"
[4] With START the given pattern has to match directly from the case start.
Query
Filter
FILTER PROCESS EQUALS START 'A';
Column1
"Table1"."CASE_ID"
Column2
"Table1"."ACTIVITY"
[5] It is also possible to use a shorter syntax. The example query is identical to PROCESS EQUALS START 'A' TO 'B' END.
Query
Filter
FILTER PROCESS # ^ 'A' -> 'B' $;
Column1
"Table1"."CASE_ID"
Column2
"Table1"."ACTIVITY"
[6] With LIKE wildcards can be used for the activity names.
Query
Filter
FILTER PROCESS EQUALS START 'A' TO LIKE 'B%' END;
Column1
"Table1"."CASE_ID"
Column2
"Table1"."ACTIVITY"
[7] Restricts the result to cases where A isn't directly followed by C.
Query
Filter
FILTER PROCESS NOT EQUALS 'A' to 'C';
Column1
"Table1"."CASE_ID"
Column2
"Table1"."ACTIVITY"
Input
Table1
CASE_ID : STRING | ACTIVITY : STRING | TIMESTAMP : DATE |
---|---|---|
'1' | 'A' | Tue Jan 01 2019 13:00:00.000 |
'1' | 'C' | Tue Jan 01 2019 13:00:02.000 |
'2' | 'A' | Tue Jan 01 2019 13:00:00.000 |
'2' | 'B' | Tue Jan 01 2019 13:00:02.000 |
'2' | 'C' | Tue Jan 01 2019 13:00:04.000 |
'3' | 'A' | Tue Jan 01 2019 13:00:00.000 |
'3' | 'B' | Tue Jan 01 2019 13:00:02.000 |
'3' | 'B' | Tue Jan 01 2019 13:00:04.000 |
'3' | 'C' | Tue Jan 01 2019 13:00:06.000 |
[8] 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.
Query
Filter
FILTER PROCESS ON "Table1"."ACTIVITY" || '1' EQUALS 'A1' to 'B1';
Column1
"Table1"."CASE_ID"
Column2
"Table1"."ACTIVITY"
[9] Filter process equals non-existing activity: Empty result and warning.
Query
Filter
FILTER PROCESS EQUALS 'X';
Column1
"Table1"."CASE_ID"
Column2
"Table1"."ACTIVITY"