The CreatorCon Call for Content is officially open! Get started here.

Incident Response SLA re-starts on re-assignment

rlegters
Mega Expert

We've got some incident response SLAs that are causing problems. The start condition for each is "Priority is priority" and "Service(u_service) is SAP". The Stop condition is "Assigned to is not Empty". So far, so good: The SLA starts and when someone sets 'Assigned to' to a person it's complete. The problem comes when we re-assign the Incident to another group. The 'Assigned to' is now empty, but the start conditions are still true, so the SLA starts again. These are set to 'Retroactive Start', so if, by chance, they've waited past the response SLA time to re-assign, that SLA is instantly in breach.
I can't find a field on the Incdient to add to the start condition that says in effect 'we've already dealt with the response SLA on this one, don't check again.' I tried using 'Reassignment Count = 0', but then if we re-assign the ticket to another group without assigning to an individual, the SLA is just cancelled.

6 REPLIES 6

tony_fugere
Mega Guru

You need another indicator like a custom true/false field called First Response and build a Business Rule that sets it to true appropriately. Then, put that into your SLA def'n.


rlegters
Mega Expert

OK - I'm a newbie, and apparently I'm missing something fundamental about Business Rules. I called my new field 'Responded', and I want to set it to 'True' when the Assigned to field is not empty. I've tried this condition: !current.assigned_to.nil() and also current.assigned_to.notnil() and as far as I can tell the rule never fires. My latest attempt at the script is current.u_responded.setValue("true")
On the other hand, in trying to figure out if the condition or the script were wrong, I've got the conditon set to current.location =="Redmond" and the script to current.location.setValue("Bradford"); which I would expect would change the location to "Bradford" whenever it's "Redmond" and that's not doing anything either, so clearly I'm completely missing the boat here. Can someone point me to the right bit of doc that clear this up for me?


When is your BR set to run? On insert/update? Is it active?

I would try
!current.assigned_to.isNil() || current.assigned_to != ""

but the first part should work just fine.

Location is a reference field so you need to do



if(current.location.name == "Redmond")
current.location.setDisplayValue("Bradford")

//Or

if(current.location.getDisplayValue() == "Redmond")
current.location.setDisplayValue("Bradford")




!current.assigned_to.nil()
is good code and should be working. You can use the Debug Business Rules or

gs.log('message')
to see if your BR fired. Location is a reference field which means you will get a sys_id (GUID) that represents the foreign key of the location in that field. To get the display value and compare, use:

current.location.getDisplayValue() == 'Redmond'
instead.