From 34b16023bbc8c136c7e5650313214b5fbcafd813 Mon Sep 17 00:00:00 2001 From: Code with bhav <92107107+bhavyaa30@users.noreply.github.com> Date: Thu, 9 Oct 2025 12:01:20 +0530 Subject: [PATCH 1/3] script.js --- .../script.js | 28 +++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 Server-Side Components/Business Rules/Reassign Tasks When Assigned User is Inactive/script.js diff --git a/Server-Side Components/Business Rules/Reassign Tasks When Assigned User is Inactive/script.js b/Server-Side Components/Business Rules/Reassign Tasks When Assigned User is Inactive/script.js new file mode 100644 index 0000000000..80456d4388 --- /dev/null +++ b/Server-Side Components/Business Rules/Reassign Tasks When Assigned User is Inactive/script.js @@ -0,0 +1,28 @@ +(function executeRule(current, previous) { + + // Trigger only when user becomes inactive + if (previous.active && !current.active) { + gs.info("User " + current.name + " became inactive. Reassigning their open tasks..."); + + // GlideRecord to find open tasks assigned to the user + var taskGR = new GlideRecord('task'); + taskGR.addQuery('assigned_to', current.sys_id); + taskGR.addQuery('state', '!=', 3); // Exclude closed tasks + taskGR.query(); + + while (taskGR.next()) { + // Reassign to user's manager if available + if (current.manager) { + taskGR.assigned_to = current.manager; + gs.info("Task " + taskGR.number + " reassigned to manager " + current.manager.name); + } else { + // Fallback to default group + taskGR.assignment_group = 'YOUR_DEFAULT_GROUP_SYS_ID'; + gs.info("Task " + taskGR.number + " reassigned to default group."); + } + + taskGR.update(); + } + } + +})(current, previous); From 59fb4e293b66efc59102c4bd658d68a0399e38ac Mon Sep 17 00:00:00 2001 From: Code with bhav <92107107+bhavyaa30@users.noreply.github.com> Date: Thu, 9 Oct 2025 12:05:36 +0530 Subject: [PATCH 2/3] readme.md --- .../readme.md | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 Server-Side Components/Business Rules/Reassign Tasks When Assigned User is Inactive/readme.md diff --git a/Server-Side Components/Business Rules/Reassign Tasks When Assigned User is Inactive/readme.md b/Server-Side Components/Business Rules/Reassign Tasks When Assigned User is Inactive/readme.md new file mode 100644 index 0000000000..3b533ad356 --- /dev/null +++ b/Server-Side Components/Business Rules/Reassign Tasks When Assigned User is Inactive/readme.md @@ -0,0 +1,10 @@ +## Purpose +Automatically reassigns tasks or incidents when the currently assigned user becomes inactive. +This ensures that no work item stays unattended due to user deactivation, termination, or role changes, maintaining operational continuity and SLA compliance. +## Tables Applicable: +Any task-based table, such as incident, problem, change_request, etc. +## Implementation Details +Table: sys_user +Trigger: Business Rule – After Update +Condition: current.active == false && previous.active == true +Purpose: Trigger logic only when a user becomes inactive. From 8a70d909cb580e83e269b43f07659b01e27c9d75 Mon Sep 17 00:00:00 2001 From: Code with bhav <92107107+bhavyaa30@users.noreply.github.com> Date: Thu, 9 Oct 2025 14:57:01 +0530 Subject: [PATCH 3/3] Update script.js --- .../script.js | 15 ++++----------- 1 file changed, 4 insertions(+), 11 deletions(-) diff --git a/Server-Side Components/Business Rules/Reassign Tasks When Assigned User is Inactive/script.js b/Server-Side Components/Business Rules/Reassign Tasks When Assigned User is Inactive/script.js index 80456d4388..876c779d9e 100644 --- a/Server-Side Components/Business Rules/Reassign Tasks When Assigned User is Inactive/script.js +++ b/Server-Side Components/Business Rules/Reassign Tasks When Assigned User is Inactive/script.js @@ -11,18 +11,11 @@ taskGR.query(); while (taskGR.next()) { - // Reassign to user's manager if available - if (current.manager) { - taskGR.assigned_to = current.manager; - gs.info("Task " + taskGR.number + " reassigned to manager " + current.manager.name); - } else { - // Fallback to default group - taskGR.assignment_group = 'YOUR_DEFAULT_GROUP_SYS_ID'; - gs.info("Task " + taskGR.number + " reassigned to default group."); - } - + // Add a work note to notify assignment group + taskGR.work_notes = "Assigned user '" + current.name + "' is inactive. Please take necessary action."; taskGR.update(); - } + + gs.info("Work note added to task " + taskGR.number); } })(current, previous);