From b5ff2935a61ab26f1f5e0fd319faf2fbc709e609 Mon Sep 17 00:00:00 2001 From: Code with bhav <92107107+bhavyaa30@users.noreply.github.com> Date: Tue, 7 Oct 2025 15:05:38 +0530 Subject: [PATCH 1/2] script.js --- .../script.js | 25 +++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 Server-Side Components/Background Scripts/Automated Cleanup of Historical Records/script.js diff --git a/Server-Side Components/Background Scripts/Automated Cleanup of Historical Records/script.js b/Server-Side Components/Background Scripts/Automated Cleanup of Historical Records/script.js new file mode 100644 index 0000000000..9b2daac1ec --- /dev/null +++ b/Server-Side Components/Background Scripts/Automated Cleanup of Historical Records/script.js @@ -0,0 +1,25 @@ +var gr = new GlideRecord('incident'); +gr.addQuery('state', 7); // Closed incidents +gr.addQuery('closed_at', '<=', gs.daysAgo(90)); +gr.query(); + +var deletedCount = 0; + +while (gr.next()) { + + // Check for any child tasks or linked changes + var related = new GlideRecord('task'); + related.addQuery('parent', gr.sys_id); + related.query(); + + if (related.next()) { + gs.info('Skipping ' + gr.number + ' because it has linked tasks/changes.'); + continue; + } + + // Safe to delete + gr.deleteRecord(); + deletedCount++; +} + +gs.info('Cleanup completed. Total records deleted: ' + deletedCount); From 27ec81f876ffa35c46aee11562e6afe993768f32 Mon Sep 17 00:00:00 2001 From: Code with bhav <92107107+bhavyaa30@users.noreply.github.com> Date: Tue, 7 Oct 2025 15:06:34 +0530 Subject: [PATCH 2/2] readme.md --- .../readme.md | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 Server-Side Components/Background Scripts/Automated Cleanup of Historical Records/readme.md diff --git a/Server-Side Components/Background Scripts/Automated Cleanup of Historical Records/readme.md b/Server-Side Components/Background Scripts/Automated Cleanup of Historical Records/readme.md new file mode 100644 index 0000000000..a09e966dac --- /dev/null +++ b/Server-Side Components/Background Scripts/Automated Cleanup of Historical Records/readme.md @@ -0,0 +1,16 @@ +## Purpose +This script automates the cleanup of historical records (closed incidents older than 90 days) while preserving records linked to active change requests or tasks. This helps improve system performance and database maintenance. + +## Use Case +- Remove outdated incidents that are no longer required. +- Prevent accidental deletion of records linked to other critical tables. +- Can be extended to other tables like `problem`, `change_request`, etc. + +## Script Details +- **Table:** `incident` +- **Filter Criteria:** + - Closed incidents (`state = 7`) + - Older than 90 days (`closed_at <= gs.daysAgo(90)`) +- **Safety Checks:** Skips records linked to `change_request` or child `task` records. +- **Execution:** Can be run as Background Script or Scheduled Script Execution. +- **Logging:** Outputs skipped and deleted records count in system logs.