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"
Input
Table1
CASE_ID : STRINGACTIVITY : STRINGTIMESTAMP : DATE
'1''A'
Tue Jan 01 2019 13:00:00.000
'1''B'
Tue Jan 01 2019 13:00:02.000
'1''C'
Tue Jan 01 2019 13:00:03.000
'2''A'
Tue Jan 01 2019 13:00:00.000
'2''C'
Tue Jan 01 2019 13:00:00.000
Output
Result
Column1 : STRINGColumn2 : STRING
'1''A'
'1''B'
'1''C'



[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 : STRINGACTIVITY : STRINGTIMESTAMP : 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
Output
Result
Column1 : STRINGColumn2 : STRING
'1''A'
'1''C'
'2''A'
'2''B'
'2''C'
'3''A'
'3''B'
'3''B'
'3''C'



[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"
Input
Table1
CASE_ID : STRINGACTIVITY : STRINGTIMESTAMP : DATE
'1''A'
Tue Jan 01 2019 13:00:00.000
'1''B'
Tue Jan 01 2019 13:00:02.000
'2''B'
Tue Jan 01 2019 13:00:00.000
'2''A'
Tue Jan 01 2019 13:00:02.000
Output
Result
Column1 : STRINGColumn2 : STRING
'2''B'
'2''A'



[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"
Input
Table1
CASE_ID : STRINGACTIVITY : STRINGTIMESTAMP : DATE
'1''A'
Tue Jan 01 2019 13:00:00.000
'1''B'
Tue Jan 01 2019 13:00:02.000
'2''B'
Tue Jan 01 2019 13:00:00.000
'2''A'
Tue Jan 01 2019 13:00:02.000
Output
Result
Column1 : STRINGColumn2 : STRING
'1''A'
'1''B'



[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"
Input
Table1
CASE_ID : STRINGACTIVITY : STRINGTIMESTAMP : DATE
'1''A'
Tue Jan 01 2019 13:00:00.000
'1''B'
Tue Jan 01 2019 13:00:02.000
'2''B'
Tue Jan 01 2019 13:00:00.000
'2''A'
Tue Jan 01 2019 13:00:02.000
Output
Result
Column1 : STRINGColumn2 : STRING
'1''A'
'1''B'



[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"
Input
Table1
CASE_ID : STRINGACTIVITY : STRINGTIMESTAMP : DATE
'1''A'
Tue Jan 01 2019 13:00:00.000
'1''BC'
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
Output
Result
Column1 : STRINGColumn2 : STRING
'1''A'
'1''BC'
'2''A'
'2''B'



[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 : STRINGACTIVITY : STRINGTIMESTAMP : 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
Output
Result
Column1 : STRINGColumn2 : STRING
'2''A'
'2''B'
'2''C'
'3''A'
'3''B'
'3''B'
'3''C'



[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"
Input
Table1
CASE_ID : STRINGACTIVITY : STRINGTIMESTAMP : DATE
'1''A'
Tue Jan 01 2019 13:00:00.000
'1''B'
Tue Jan 01 2019 13:00:02.000
'1''C'
Tue Jan 01 2019 13:00:03.000
'2''A'
Tue Jan 01 2019 13:00:00.000
'2''C'
Tue Jan 01 2019 13:00:00.000
Output
Result
Column1 : STRINGColumn2 : STRING
'1''A'
'1''B'
'1''C'



[9] Filter process equals non-existing activity: Empty result and warning.

Query
Filter
FILTER PROCESS EQUALS 'X';
Column1
"Table1"."CASE_ID"
Column2
"Table1"."ACTIVITY"
Input
Table1
CASE_ID : STRINGACTIVITY : STRINGTIMESTAMP : DATE
'1''A'
Tue Jan 01 2019 13:00:00.000
'1''B'
Tue Jan 01 2019 13:00:02.000
'1''C'
Tue Jan 01 2019 13:00:03.000
'2''A'
Tue Jan 01 2019 13:00:00.000
'2''C'
Tue Jan 01 2019 13:00:00.000
Output
Result
Column1 : STRINGColumn2 : STRING

PROCESS [NOT] EQUALS: Could not find activity: 'X'


  • No labels