Notifications for Human Tasks at a predetermined percentage of SLA before tasks breach SLA and escalate
Time and again, during project requirements phase, customers come up with a common requirement that, seemingly cannot be met with SAP BPM currently. Customers often ask for notification reminders on approaching SLA. For instance, SLA for a task would be 10 hours. We would typically model a boundary event CompletionDeadlineIsNonCriticalException for that particular task so that a notification or an action occurs after the deadline is breached. However, what if the customer requires a notification to be sent out at 50% SLA – i.e., 5 hours before the task completion. At the moment, SAP BPM does not provide any handlers wherein the developers can track the task progress. I believe this is not available with 7.3 releases as well.
This is where the pattern described below comes in handy.
We essentially have an ‘Event Based Choice’ in parallel with the human task to which we have an assigned SLA. This event-based choice would be used for sending out notifications at predefined percentage of the defined SLA.
How it works
We would have a parallel split before every task. One branch would be the human task itself, the other would lead to an event based choice. Event based choice would have an Intermediate message event and a Timer in parallel. Event Based Choice works on the principle that it would act only on the first event – it could either be the Timer or the Intermediate message event receiving a message.
Now the timer would be configured to the required percentage of SLA breach, lets say, 50% in our example or 5 hours [This can be determined through an EJB function that can be attached to the timer]. Intermediate message event would wait for a message on completion of the human task. If the timer gets triggered first, which means that the task has not yet been completed, a notification can be sent out. The timer, of course triggers, at a predetermined percentage of the SLA. However, if the timer is still in waiting and intermediate message event gets triggered, the task has been completed ahead of the time and does not need any notifications to be sent out.
Further activities can be built on this. For example, after the notification is sent out at 50% of SLA, the branch can be mapped back into the Event based choice so as to trigger another notification at 75% of SLA. This pattern overcomes the current constraint in SAP BPM quite conveniently and without any additional code or DB based alternatives.
- 1. Parallel split and event-based choice consume high amount of resource in the server. They should be used with discretion
- 2. The rare case of intermediate message event getting a message and timer getting triggered simultaneously has not been considered