Delete scheduled reports along with reports
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
06-20-2019 07:15 AM
Good Morning everyone,
I am working on a script to remove reports based on a give criteria, I need some assistance with adding to it. I need to add the removal of scheduled reports as well. I gave it a try in my code below but it did not turn out well. Can anyone see if im headed in the right direction?
Current Script:
(function myReports() {
reportsArray = [];
var reports = 0;
var repo_old = 0;
var repoStats = new GlideRecord('report_stats');
repoStats.addEncodedQuery('report_sys_id.created_by_user.active=true^ORreport_sys_id.created_by_user.active=false^ORnumber_executions_total=0^ORreport_sys_id.created_by_userISEMPTY^sys_updated_onRELATIVELT@month@ago@13^report_sys_id.created_by_user!=6816f79cc0a8016401c5a33be04be441^report_sys_id.created_by_user.roles!=report_group^report_sys_id.created_by_user.roles!=gauge_maker^report_sys_id.created_by_user.roles!=bcbsla_homepage_editor^report_sys_id.user!=GLOBAL');
repoStats.query();
reports = repoStats.getRowCount();
while(repoStats.next()) {
var sRep = new GlideRecord ('sysauto_report_list');
sRep.addQuery('name', repoStats.report_sys_id);
sRep.query();
while(sRep.next()) {
reportsArray.push(repoStats.report_sys_id.title.toString());
}
for(i=0; i<reportsArray.length; i++){
var repo = new GlideRecord('sys_report') ;
repo.addQuery('title',reportsArray[i]);
repo.query();
repo_old = repo.getRowCount();
if(repo.next()){
}
}
}
gs.log('Scheduled report -' + sRep + 'to be removed');
gs.log('Number of reports found - ' + reports + ' will be removed');
gs.log('These are the names of the reports -' + reportsArray.join('\n')+ ' ');
//repo.deleteMultiple();
})();
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
06-20-2019 07:20 AM
This line should be
var sRep = new GlideRecord ('sysauto_report');
Please mark my response as correct and helpful if it helped solved your question.
-Thanks
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
06-20-2019 07:42 AM
Thank you for catching that Prateek,
I updated my script like below:
(function myReports() {
reportsArray = [];
var reports = 0;
var repo_old = 0;
var scheduled = 0;
var repoStats = new GlideRecord('report_stats');
repoStats.addEncodedQuery('report_sys_id.created_by_user.active=true^ORreport_sys_id.created_by_user.active=false^ORnumber_executions_total=0^ORreport_sys_id.created_by_userISEMPTY^sys_updated_onRELATIVELT@month@ago@13^report_sys_id.created_by_user!=6816f79cc0a8016401c5a33be04be441^report_sys_id.created_by_user.roles!=report_group^report_sys_id.created_by_user.roles!=gauge_maker^report_sys_id.created_by_user.roles!=bcbsla_homepage_editor^report_sys_id.user!=GLOBAL');
repoStats.query();
reports = repoStats.getRowCount();
while(repoStats.next()) {
var sRep = new GlideRecord ('sysauto_report');
sRep.addQuery('name', repoStats.report_sys_id);
sRep.query();
scheduled = sRep.getRowCount();
while(sRep.next()) {
reportsArray.push(repoStats.report_sys_id.title.toString());
}
for(i=0; i<reportsArray.length; i++){
var repo = new GlideRecord('sys_report') ;
repo.addQuery('title',reportsArray[i]);
repo.query();
repo_old = repo.getRowCount();
if(repo.next()){
}
}
}
gs.log('Scheduled report -' + sRep.getDisplayValue() + 'to be removed');
gs.log('Number of reports found - ' + reports + ' will be removed');
gs.log('These are the names of the reports -' + reportsArray.join('\n')+ ' ');
//repo.deleteMultiple();
})();
Output from script (now removing names on last line of log):
*** Script: Scheduled report -to be removed
*** Script: Number of reports found - 1243 will be removed
*** Script: These are the names of the reports -
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
06-20-2019 08:06 AM
This line should be
sRep.addQuery('report', repoStats.report_sys_id);
Please mark my response as correct and helpful if it helped solved your question.
-Thanks
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
06-20-2019 10:17 AM
I used this script:
(function myReports() {
reportsArray = [];
var reports = 0;
var repo_old = 0;
var scheduled = 0;
var repoStats = new GlideRecord('report_stats');
repoStats.addEncodedQuery('report_sys_id.created_by_user.active=true^ORreport_sys_id.created_by_user.active=false^ORnumber_executions_total=0^ORreport_sys_id.created_by_userISEMPTY^sys_updated_onRELATIVELT@month@ago@13^report_sys_id.created_by_user!=6816f79cc0a8016401c5a33be04be441^report_sys_id.created_by_user.roles!=report_group^report_sys_id.created_by_user.roles!=gauge_maker^report_sys_id.created_by_user.roles!=bcbsla_homepage_editor^report_sys_id.user!=GLOBAL');
repoStats.query();
reports = repoStats.getRowCount();
while(repoStats.next()) {
var sRep = new GlideRecord ('sysauto_report');
sRep.addQuery('report', repoStats.report_sys_id);
sRep.query();
scheduled = sRep.getRowCount();
while(sRep.next()) {
reportsArray.push(repoStats.report_sys_id.title.toString());
}
for(i=0; i<reportsArray.length; i++){
var repo = new GlideRecord('sys_report') ;
repo.addQuery('title',reportsArray[i]);
repo.query();
repo_old = repo.getRowCount();
if(repo.next()){
}
}
}
gs.log('Scheduled report -' + scheduled + 'to be removed');
gs.log('Number of reports found - ' + reports + ' will be removed');
gs.log('These are the names of the reports -' + reportsArray.join('\n')+ ' ');
//repo.deleteMultiple();
})();
And this was the output:
*** Script: Scheduled report -0to be removed
*** Script: Number of reports found - 1243 will be removed
*** Script: These are the names of the reports -Story and Time Card Report List (shared) Story and Time Card Report List (shared) Story List Report (shared) History of incidnet reassigned groups History of incidnet reassigned groups App Services - Request Variables Reporting App Services - Request Variables Reporting cat report CAB Report - Active Change Requests User Information - Disaster Recovery
It seems like its cutting of the reports in the last log and not getting the reports in the first log.