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. 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..876c779d9e --- /dev/null +++ b/Server-Side Components/Business Rules/Reassign Tasks When Assigned User is Inactive/script.js @@ -0,0 +1,21 @@ +(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()) { + // 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);