Inherit SLA from the contract attached to the top-level account in the hierarchy

SrdanMatijevic
Kilo Sage

Hi,

 

We have the following use case:

  • There are quite a few accounts in the hierarchy, three levels deep (international corporation).
  • The contract that governs SLAs is signed with the global corporation i.e. with the top-level account.
  • Cases can be raised against any of the accounts within the hierarchy but all of those cases should inherit the SLAs from the top account.

What would be the best way to implement this?


I live for thumbs ups.
1 ACCEPTED SOLUTION

@Tony Chatfield1 thank you for the suggestion. We used it as inspiration and tweaked the logic a bit

Trigger:
When the Contract.Parent contract field is changed

Work:
Get all SLAs on the current contract and, if there are any, delete them.
Loop through all SLAs on the Parent contract and attach them against the current contract. 

We used a simple flow to do this.
We will also implement a button on a contract to copy its SLAa to all child contracts. 


I live for thumbs ups.

View solution in original post

2 REPLIES 2

Tony Chatfield1
Kilo Patron

Hi, unfortunately the SLA engines are not an easy customization.
If you are using 2010 SLA Engine, then I think this BR defines SLA's that are related to a task on insert\update
'Process SLAs' /nav_to.do?uri=sys_script.do?sys_id=26e463f9ac100b0e55748246a0674c4b

and it looks like you could tweak runContractSLAs() to search and return results for related contracts, but I have not tested this to confirm that it would always result in expected behavior.

 

If you are using 2011 SLAEngine then the work is spread across multiple script-includes via this BR

'Run SLAs' /nav_to.do?uri=sys_script.do?sys_id=6cdfa0737f0000016f6bc23171995b41
and while the functions involved will not be difficult to locate I would have serious concerns about customizing any that belongs to the OOB SLA engines.

 

So, while it would be possible, just adding the SLA definitions to the child contracts would be the easiest\safest solution.
If you want an automated solution for this, I would add after insert and delete BR's to 'contract_sla_contract'

and simply keep the children in sync IE add (or remove) records for your child contracts based on updates to the parent contract, then add some controls to prevent users from manually adding\removing SLA's from child contracts.

 

@Tony Chatfield1 thank you for the suggestion. We used it as inspiration and tweaked the logic a bit

Trigger:
When the Contract.Parent contract field is changed

Work:
Get all SLAs on the current contract and, if there are any, delete them.
Loop through all SLAs on the Parent contract and attach them against the current contract. 

We used a simple flow to do this.
We will also implement a button on a contract to copy its SLAa to all child contracts. 


I live for thumbs ups.