Sample Monitor Solutions
Here we capture some sample monitor solutions.
Task Escalation alerts
Consider the notion of a human task. We may wish this task to be completed within a certain period of time. If it isn't, then we may wish to raise an alert to have it looked into. This is a good use case for Business Monitor.
When a BPD runs, a model is built of each of the steps performed by the process. This includes when the step starts and when it ends. Our design for the solution is broken into two phases. The first will be the determination that a task is late and the second on how an alert will be issued.
To determine if a task is late, we will create a new trigger that will fire:
An example trigger definition would be:
<trigger displayName="Task Overdue" id="Task_Overdue" isRepeatable="false"> <evaluationTime hours="0" minutes="2"/> <gatingCondition expression="bmon_Step_Name = 'Receive Claim' and fn:empty(bmon_EndTime)"/> </trigger>
with a corresponding outbound event definition off:
<outboundEvent displayName="Task Escalation" id="Task_Escalation" extensionName="ActionServicesEvent" rootElement="cbe:CommonBaseEvent"> <eventPart displayName="escalation" id="escalation" path="cbe:CommonBaseEvent/tns2:escalation" type="tns2:escalation"></eventPart> <map> <trigger ref="Task_Overdue"/> <outputValue> <assignments> <assignment leftValue="Task_Escalation/extendedData/BusinessSituationName" rightValue="'Escalation'"/> <assignment leftValue="Task_Escalation/escalation/tns2:processId" rightValue="../Process_Instance_ID "/> <assignment leftValue="Task_Escalation/escalation/tns2:taskId" rightValue="Task_ID "/> <assignment leftValue="Task_Escalation/escalation/tns2:stepName" rightValue="bmon_Step_Name "/> <assignment leftValue="Task_Escalation/escalation/tns2:currentOwner" rightValue="bmon_PerformerName "/> <assignment leftValue="Task_Escalation/escalation/tns2:processName" rightValue="../Process_Name "/> </assignments> </outputValue> </map> </outboundEvent>
When an alert is seen notifying someone that a task is overdue, we must now ask ourselves what should that alert contain? Options include:
Of these, the Process Instance ID, the Task ID and the name of the process are not generated automatically by the BPM monitor model generation and need to be explicitly added.