The Event Filtering mechanism uses an improved syntax to filter events, as shown in the following example.
rule update_MyTaskReport
activated by
EVT_1 of BP Server::W_COMPLETED{WORKSTEPNAME : "Start", PROCESSTEMPLATENAME :
"Assign_A_Task_V2"},
EVT_2 of BP Server::W_COMPLETED{WORKSTEPNAME : "DoTask", PROCESSTEMPLATENAME :
"Assign_A_Task_V2"}
correlated with INDEX
{...}
The default behavior is to maintain the original semantics of rules, so, if there are weak conditions, for example, BP Server::{}, then it retrieves all the events, therefore disabling other strong conditions for event retrieval. In this case, there is no performance gain. If you still want to use weak conditions, but not enforce retrieval of all possible events (that is, the processing of only filtered events is allowed), then you can achieve processing of only filtered events by using NO_EVENT_FILTER_GENERATION, as shown in the following example.
rule update_MyTaskReport
activated by
EVT_1 of BP Server::W_COMPLETED{WORKSTEPNAME : "Start", PROCESSTEMPLATENAME :
"Assign_A_Task_V2"},
EVT_2 of BP Server::W_COMPLETED{WORKSTEPNAME : "DoTask", PROCESSTEMPLATENAME :
"Assign_A_Task_V2"}
correlated with INDEX
: NO_EVENT_FILTER_GENERATION
{...}
This means the information extracted from this rule is not used for event filtering from BPMEvent table.
Event filtering example
The following code sample illustrates event filtering.
rule update_MyTaskReport
activated by
EVT_1 of BP Server::W_COMPLETED{WORKSTEPNAME : "Start", PROCESSTEMPLATENAME :
"Assign_A_Task_V2"},
EVT_2 of BP Server::W_COMPLETED{WORKSTEPNAME : "DoTask", PROCESSTEMPLATENAME :
"Assign_A_Task_V2"}
correlated with INDEX
{...}