diff --git a/Server-Side Components/Background Scripts/Rename reports - Avoid duplicate names/readme.md b/Server-Side Components/Background Scripts/Rename reports - Avoid duplicate names/readme.md new file mode 100644 index 0000000000..fb33c95599 --- /dev/null +++ b/Server-Side Components/Background Scripts/Rename reports - Avoid duplicate names/readme.md @@ -0,0 +1,3 @@ +How often we come across cases where reports are created with same name by different users. Well to maintain some uniquenss across why not have some controls to get it unified. Below script can be used to suffix 'Created by' to the report to help uniquely identify report. +Execute it as a background script to update it in bulk. +For example Report named ABC will becom ABC - [PQR]v1 and ABC - [XYZ]v2 where PQR and XYZ are created by users diff --git a/Server-Side Components/Background Scripts/Rename reports - Avoid duplicate names/script.js b/Server-Side Components/Background Scripts/Rename reports - Avoid duplicate names/script.js new file mode 100644 index 0000000000..e5f9c7c5a0 --- /dev/null +++ b/Server-Side Components/Background Scripts/Rename reports - Avoid duplicate names/script.js @@ -0,0 +1,42 @@ +var ar = []; +var dupCheck = new GlideAggregate('sys_report'); +dupCheck.addEncodedQuery('titleISNOTEMPTY'); +dupCheck.addNotNullQuery('title'); +dupCheck.groupBy('title'); +dupCheck.addAggregate('COUNT', 'title'); +dupCheck.addHaving('COUNT', '>', 1); +dupCheck.query(); +while (dupCheck.next()) { +ar.push(dupCheck.getValue("title")); +} + +for(var i = 0 ; i< ar.length; i++){ + var report = new GlideRecord("sys_report"); + report.addQuery("title",ar[i]); + report.query(); +var c= 0; + while(report.next()){ + c++; + var user = new GlideRecord("sys_user"); + user.addQuery("email",report.sys_created_by.toString()); + user.query(); + if(user.next()){ + var name = user.name; + } + + if(name){ + report.title = report.title+" "+' - [' + name + ']'+" "+"v"+c; // Report named ABC will now be ABC - [PQR]v1 and ABC - [XYZ]v2 where PQR and XYZ are created by users + report.setWorkflow(false); + report.autoSysFields(false); + report.update(); + } + else { + report.title = report.title+" "+"v"+c; + report.setWorkflow(false); + report.autoSysFields(false); + report.update(); + + } + } + +}