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 must start with one of the specified activities
NODE: case must have all of the specified activities
NODE_ANY: case must have at least one of the specified activities
ENDING: case must end with one of the specified activities
EXCLUDING: case must not have any of the specified activities (and must have at least one non-NULL activity)
EXCLUDING_ALL: case must not have all 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 a specifier contains an activity that doesn't exist, it's as if the activity exists but isn't found in any case. In this situation, a warning is issued.
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. | |||||||||||||||||||||||||
| |||||||||||||||||||||||||
|