logo

NJP

Implementing complex SLA definitions using decision table and script include

New article articles in ServiceNow Community · Apr 08, 2025 · article

SLA configuration can get a little complex when service based SLAs need to be configured, this scoped app is meant to simplify such configuration by making use of decision tables to map service to an SLA, below are specifics of the configuration.

SLA definition

Configure SLA definition filter condition with service.sys_id Is one of as condition and in the condition provide javascript that returns list of service sys_ids for which given SLA is applicable, below is sample condition script where 'a2a8e0158330a210b0abcfc0deaad37e' is sys_id of the SLA definition

javascript: new global.ServiceBasedSLAUtils().includedServicesForSLA('a2a8e0158330a210b0abcfc0deaad37e');

VaranAwesomenow_0-1744089637323.png

Decision table

A decision table is created with input as SLA sysid and output as list of sysids of services for which a given SLA is applicable.

VaranAwesomenow_1-1744089637325.png

Script Include

Script include contains required configuration to return sysids of services for a given SLA sysid based on decision table configuration.

VaranAwesomenow_2-1744089637326.png

Scoped app

All required configuration is packaged in a scoped app.

VaranAwesomenow_3-1744089637329.png

which is accessible here : anilvaranasi/ServiceBasedSLAManagement

Testing

Sample incident with service as SAP Materials Management (sys_id = 26e44e8a0a0a0bb40095ff953f9ee520)

Decision table

VaranAwesomenow_4-1744089637331.png

Decision entry with service sys_id as result

VaranAwesomenow_5-1744089637332.png

SLA is attached to the incident

VaranAwesomenow_6-1744089637333.png

VaranAwesomenow_7-1744089637334.png

View original source

https://www.servicenow.com/community/developer-articles/implementing-complex-sla-definitions-using-decision-table-and/ta-p/3230933