From 71fa8942294b97c7ed7c95bbeaddedac279d8e98 Mon Sep 17 00:00:00 2001 From: Chetna Sharma <146471211+chetnadev@users.noreply.github.com> Date: Wed, 8 Oct 2025 19:21:15 +0530 Subject: [PATCH 1/3] Create businessRule.js --- .../businessRule.js | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 Server-Side Components/Script Includes/Enforce SLA Rules on Change Requests with Scheduled Job Trigger/businessRule.js diff --git a/Server-Side Components/Script Includes/Enforce SLA Rules on Change Requests with Scheduled Job Trigger/businessRule.js b/Server-Side Components/Script Includes/Enforce SLA Rules on Change Requests with Scheduled Job Trigger/businessRule.js new file mode 100644 index 0000000000..e6304e9104 --- /dev/null +++ b/Server-Side Components/Script Includes/Enforce SLA Rules on Change Requests with Scheduled Job Trigger/businessRule.js @@ -0,0 +1,13 @@ +(function executeRule(current, gsn, gs) { + + var timer = new GlideRecord('sys_trigger'); + timer.initialize(); + timer.name = "Change Escalation for: " + current.number; + timer.script = "new global.ChangeEscalationHelper().checkAndEscalate('" + current.sys_id + "');"; + + var triggerTime = new GlideDateTime(); + triggerTime.addSeconds(60 * 60 * 48); // 48 hours + timer.next_action = triggerTime; + timer.insert(); + +})(current, gsn, gs); From 781f5545063b0a2b2e28e8ac20e4cb27b58f053f Mon Sep 17 00:00:00 2001 From: Chetna Sharma <146471211+chetnadev@users.noreply.github.com> Date: Wed, 8 Oct 2025 19:21:55 +0530 Subject: [PATCH 2/3] Create ScriptInclude.js --- .../ScriptInclude.js | 22 +++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 Server-Side Components/Script Includes/Enforce SLA Rules on Change Requests with Scheduled Job Trigger/ScriptInclude.js diff --git a/Server-Side Components/Script Includes/Enforce SLA Rules on Change Requests with Scheduled Job Trigger/ScriptInclude.js b/Server-Side Components/Script Includes/Enforce SLA Rules on Change Requests with Scheduled Job Trigger/ScriptInclude.js new file mode 100644 index 0000000000..f76202b81a --- /dev/null +++ b/Server-Side Components/Script Includes/Enforce SLA Rules on Change Requests with Scheduled Job Trigger/ScriptInclude.js @@ -0,0 +1,22 @@ +var ChangeEscalationHelper = Class.create(); +ChangeEscalationHelper.prototype = { + initialize: function() {}, + + checkAndEscalate: function(changeId) { + var gr = new GlideRecord('change_request'); + if (gr.get(changeId) && gr.state == '1') { // Assuming '1' = New + // Notify change manager + gs.eventQueue('change.escalate', gr, gs.getUserID(), ''); + + // Log an escalation task + var task = new GlideRecord('task'); + task.initialize(); + task.short_description = "Escalation: Change not assessed in 48 hours"; + task.parent = gr.sys_id; + task.assignment_group.setDisplayValue('Change Management'); + task.insert(); + } + }, + + type: 'ChangeEscalationHelper' +}; From 9fc57f097e856c27fdc9c981243b0476cde28ede Mon Sep 17 00:00:00 2001 From: Chetna Sharma <146471211+chetnadev@users.noreply.github.com> Date: Wed, 8 Oct 2025 19:27:19 +0530 Subject: [PATCH 3/3] Create README.md --- .../README.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 Server-Side Components/Script Includes/Enforce SLA Rules on Change Requests with Scheduled Job Trigger/README.md diff --git a/Server-Side Components/Script Includes/Enforce SLA Rules on Change Requests with Scheduled Job Trigger/README.md b/Server-Side Components/Script Includes/Enforce SLA Rules on Change Requests with Scheduled Job Trigger/README.md new file mode 100644 index 0000000000..bc1390fd87 --- /dev/null +++ b/Server-Side Components/Script Includes/Enforce SLA Rules on Change Requests with Scheduled Job Trigger/README.md @@ -0,0 +1,5 @@ +If a Change Request hasn't been moved to "Assess" state within 48 hours of submission, +automatically send a reminder and log escalation task. +This is a hybrid of a Business Rule + Scheduled Job (or Flow). +This code sets up an automated escalation process for change requests in ServiceNow. When a new change request is created, it schedules a job to run after 48 hours using a `sys_trigger`. +If the change is still in the "New" state at that time, the Script Include sends a notification event and creates an escalation task assigned to the Change Management group. This ensures timely review and prevents unattended change requests.