Event point key and filter

When events are emitted to IBM® Business Monitor, they include an event point key as part of the XML. The event point filter defines which events are included in the subscription when a monitor model is deployed. Events that use the Dynamic Event Framework are only emitted to a monitor model if the events are defined in the event point filter.

When you are using IBM BPM, BPMN and BPEL applications can generate monitor models. The event point keys in a generated monitor model must not be changed. If you are manually crafting a business activity model, you can define the event point filter to emit a few specific events or a broad range of events to the monitor model.

If the application you are monitoring runs in an environment other than IBM BPM, you send events in XML format to one of the event services (JMS or REST). The event service then delivers the event to the monitor model table. You also create a monitor model. When you create the monitor model, you specify the attributes from the event point key that you want to monitor and provide an event point filter as part of the event description. The Dynamic Event Framework uses the filter values to route events directly to your monitoring model event processing.

Event point filters specify which events are emitted. If you are using IBM BPM, the event point filter can tell the BPMN engine to emit events only if the process application name is MortgageLending, the snapshot version is 1.0, the process name is LoanProcessing, and the activity name is LoanApproval. In the past, you specified what events to emit as part of authoring your emitting application (the events were specified in a .mon file inside the process application). To change the events that were emitted, you had to publish a new snapshot of that process application. Now, it is all dynamic; events are sent only if something such as a monitor model subscribes to them. New subscriptions take effect dynamically. The event point filter is where that subscription is specified.

The key and filter include the following seven parts:
Table 1. Event point key attributes
Attribute Possible values Example
Application name The name of the application that is the source of the events that are to be monitored PROCESS1
Version The version of the application that is to be monitored. 2064.add1501f-0935-4af4-a205-cff82c36ed1aT
Component type The type of the component that is to be monitored BPD
Component name The name of the component that is to be monitored MyProcess
Element type The type of element that is to be monitored. BPMN types are
  • PROCESS
  • ACTIVITY
  • EVENT
  • GATEWAY
ACTIVITY
Element name The name of the element that is to be monitored LoanActivity01
Nature The nature of the event. One element can send various events, such as STARTED, ACTIVE, COMPLETED. BPMN nature categories are
  • STARTED
  • COMPLETED
  • TERMINATED
  • DELETED
  • FAILED
  • CAUGHT
  • THROWN
  • EXPECTED
  • ACTIVE
  • READY
  • RESOURCE_ASSIGNED
  • ACTIVE
  • LOOP_CONDITION_TRUE
  • LOOP_CONDITION_FALSE
  • MULTIPLE_INSTANCES_STARTED
STARTED

The event point filter is different from the filter condition. The filter condition is an arbitrary XPath expression that must evaluate to true for the outbound event to be emitted. Now, there is another filter, which is based on the seven parts of the event point key that uniquely identify any kind of event. If you are defining a filter rather than using generated values, every field in the event point filter must have a valid value or an asterisk (*) to indicate that the field does not need to be used. So the filter might subscribe to an application named "MortgageLending" and an element name "LoanApprovalActivity". The monitor model would use all events in that matched that combination.

Consider this example of an event point filter for a process application from IBM BPM Standard. You want to monitor all versions of myPA process application, tracking the SayHello activity of its HelloWorld process, listening for when it starts and when it ends. Your inbound event filter would use these values:
Application name: myPA
Version: *
Component type: BPD
Component name: HelloWorld
Element type: ACTIVITY
Element name: sayHello
Nature: STARTED
Another inbound event would have the same first six values and Nature: "COMPLETED" for tracking when the process ends.