Technology Blogs by Members
Explore a vibrant mix of technical expertise, industry insights, and tech buzz in member blogs covering SAP products, technology, and events. Get in the mix!
cancel
Showing results for 
Search instead for 
Did you mean: 
sajith_p
Participant

Multi-level SLA breach notification in SAP BPM

In SAP BPM, we know how to design a simple SLA breach notification (Single level). But there are many cases, in the business process, it should escalate and send SLA breach notifications to multiple levels of users.

For example, a human task has assigned to an employee to approve a request. Due to some reason employee miss to approve the same within a predefined SLA duration. In this case a notification has to be send to his manager to escalate the same. Currently in SAP BPM this is very simple. Now let is consider 2nd level of escalation. The condition is that, if the Manager also not responded to this notification, within the 2nd SLA duration, the system should send a notification to CEO of the company.

There is no direct way to implement this in BPM. One way is that using Event based choice, an Intermediate Timer, an Intermediate Message event and a notification activity within a parallel path. If you see the objects used here, it will utilize huge amount of server resources. This will highly impact the performance. This approach we cannot use where no of process instances are high or medium. Also manager and CEO will get bunch of emails every day. This will be an annoying situation.

Consider, if a design can give a solution which will send only one consolidated SLA notification per day (If any) to Manager and CEO. Also this will not be using any event based choice, Intermediate Timer, Intermediate Message event or parallel path. All will be replaced with a job scheduler and a database table.

The design is explained below in detail:

1. BPM flow

2. Database design

Table Name: PROC_SLA

Field Name

Java Field Name

DB Column Name

DB-Data Type

Primary Key

Mandatory

Field Length

Request ID*

requestid

REQ_ID

String

Yes

Yes

50

Task ID*

taskid

TAS_ID

String

Yes

Yes

20

SLA Level*

slalevel

SLA_LEV

Int

Yes

Yes

NA

Task Name

taskname

TAS_NAM

String

No

Yes

100

SLA Breach Date

slabreachdate

SLA_BRE_DAT

Date

No

Yes

NA

Potential Owner (email-id /role /group)

potentialowner

POT_OWN

String

No

Yes

100

Task ID: we can give any unique task name to identify the task. Example: LEAVE_APR1

3. BRM design

BRM we can use the same routing rule decision table by modifying a little bit. Here we need to include the Task ID, SLA duration, and potential owner to send the SLA notifications.

SLA Rule Decision Table (Individual rule for each process)

Input

Output

TASK ID

LEVEL

SLA DURATION

POTENTIAL OWNER

LEAVE_APR1

0

0

APPROVER1

1

2

MANAGER

2

4

CEO

4. Java JOB scheduler

This job scheduler will run every day (Consider the SLA duration will be in days). This will monitor the table PROC_SLA once in every day if any items which are breached SLA or not. It will send a consolidated list of requests in the notification which are breached SLA duration.

Steps to execute:

Perform below steps before assigning the human task to the potential owner

  1. Execute the SLA rule and get the SLA Levels, SLA Duration and Potential owner
  2. Calculate the SLA Breach date by adding the current date + SLA Duration
  3. Update in the table PROC_SLA
  4. Run SLA notification Job scheduler every day
  5. Get the records from table PROC_SLA where SLA Breach date is today's date.
  6. Get the required request details from request master table if required
  7. Trigger the email from a Java mail service with required details.
  8. To improve the database performance we can delete the record from table on completion of the process.
  9. We can code the scheduler such a way that, it should send a consolidated email to Manager and CEO every day with list of requests which are breached SLA.
Labels in this area