SLA Visibility

Robin Hearne
Tera Expert

I'm trying to find a way to make SLA targets more visible to the technicians without resorting to email notifications (as they receive far too many of these already).   Ideally I'd like to be able to display the status (percentage complete) for the relevant Resolution and Response SLA tasks as columns when viewing a list of incidents.   What I'm looking for seems to be similar to the out-the-box experience for the HR Case Management application.   The hr_case table has a field called 'SLA' which is of type 'Percentage Complete'.   Visually this is exactly what I'm looking for, but I can't work out how the value is updated in this field.

2016-04-30_21h17_30.png

Can anyone offer any insight as to how this is working in the HR Case Management application or general advise on how best to achieve what I'm seeking?

Regards,

Robin

4 REPLIES 4

Subhajit1
Giga Guru

Not sure how its done on the HR module, but the main problem with building something on these lines is : There are too many SLA records attached to an Incident. If you are able to figure out a way to copy the value from the exact SLA record attached, then it is a simple copy of the Percentage Complete field value on the SLA record over to the Incident form. But the main problem lies there, as during the lifecycle of an Incident, the Priority of the ticket may vary and correspondingly the SLAs.


Michael Fry1
Kilo Patron

There is a business rule named: Populate case SLAs - that is responsible for populating the SLA field on the HR case. Maybe you can duplicate for your needs.


pdom
Mega Expert

Hi Robin,



Are you able to find solution for this. I have exactly the same question. Please help



Thanks


Robin Hearne
Tera Expert

Hi Padmini,



I have a working prototype which works in the same way as the 'Populate case SLAs' Business Rule for the hr_case table (thanks Michael for the info on that).   I added two fields to the Incident table, one for the Response SLA (u_resp_sla) and one for the Resolution SLA (u_resl_sla).   I then created two Business Rules to populate each of these fields.   The Business Rules are run against the task_sla table running after an Insert or Update and trigger on the following conditions:



Task.Task type is Incident


Active is True


SLA.Name contains response (or resolution for the other Business Rule)



Business rule updates the relevant field in the Incident record using the following script (this one is for the Response SLA Business Rule):



function onAfter(current, previous) {


  var inc = new GlideRecord("incident");


  inc.addQuery("number",current.getDisplayValue("task"));


  inc.query();


  if(inc.next())


  inc.setValue("u_resp_sla", business.percentage);


  inc.update();


}



This works for me because there should only ever be one active task_sla record attached to an Incident at any one time which has the word 'response' in the name (and similarly for resolution).   Even if the priority changes, one task_sla should cancel and another be created, and so the field will just be updated with the value from the new one.



Everything seems to be working fine.   I haven't moved it into my production environment yet because I have a slight hesitation over whether it will be detrimental to performance with the number of active task_sla records that could get updated.



Hope this helps.



Regards,



Robin