MATCH_ACTIVITIES
Description
MATCH_ACTIVITIES flags cases with certain activities without taking the exact order of activities into account. If the order is of importance, use MATCH_PROCESS_REGEX or MATCH_PROCESS.
Syntax
MATCH_ACTIVITIES([ activity_table.string_column, ] [STARTING activity_list ] [, ] [NODE activity_list ] [, ] [NODE_ANY activity_list ] [, ] [ENDING activity_list ] [, ] [EXCLUDING activity_list ] [, ] [EXCLUDING_ALL activity_list ])
activity_table.string_column: A string column of an activity table. By default, the activity column of the default activity table is used.
activity_list: [ activity_name [, activity_name ]* ]
STARTING: case has to start with specified activity
NODE: case has to have the specified activities
NODE_ANY: case has to have at least one of the specified activities
ENDING: case has to end with specified activity
EXCLUDING: case must not have the specified activities (and must have at least one non-NULL activity)
EXCLUDING_ALL: case must not have any of the specified activities (and must have at least one non-NULL activity)
Result
MATCH_ACTIVITIES returns an integer column, which flags all matching cases with 1 and all non matching cases with a 0. The result is often used in combination with a filter.
Combine Specifiers
If you are combining several specifiers, keep in mind that the order of the specifiers matters. For example START has to come before NODE.
If the starting, ending or excluding activity name used in MATCH_ACTIVITIES does not exist, then an error is thrown.
NULL handling
NULL values do not influence the case flag and are ignored.
[1] In this example STARTING and ENDING are combined to flag cases which begin with activity 'A' and end with activity 'B'. The rows with a null value are ignored. | ||||||||||||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||||||||||
|
Examples
[2] Here MATCH_ACTIVITIES is used to filter cases which have activity 'A' and 'B'. The order doesn't matter but both activities have to be present in a case. | |||||||||||||||||||||||||
| |||||||||||||||||||||||||
|
[3] In this example MATCH_ACTIVITIES, by using the keyword NODE_ANY, flags all cases which have either activity 'B', 'C' or both. | |||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||
|
[4] The keyword EXCLUDING excludes all cases which have activity 'B', 'C' or both. | |||||||||||||||||||
| |||||||||||||||||||
|
[5] In this example, applying EXCLUDING_ALL excludes all cases which have activity 'A' and 'B'. | |||||||||||||||||||||||||
| |||||||||||||||||||||||||
|
[6] In this example STARTING and ENDING are combined to flag cases which begin with activity 'A' and end with activity 'B'. | |||||||||||||||||||||||||
| |||||||||||||||||||||||||
|
[7] Cases which are empty, meaning all their activities are null or no activities exist, are flagged as non-matching by returning 0. That also applies for the EXCLUDING keyword. | |||||||||||||||||||||||||
| |||||||||||||||||||||||||
|