Join the #BuildWithBuildAgent Challenge! Get recognized, earn exclusive swag, and inspire the ServiceNow Community with what you can build using Build Agent.  Join the Challenge.

Delete Role Public from Reports

purdue
Kilo Sage

Hello,

I need to delete the Public Role from any reports in sys_report.   I have tried one report below but is not working.   Any assistance is appreciated.

 

var reportrole = 'roles=public^title=App Service IDs';
var report= new GlideRecord('sys_report');
report.addEncodedQuery(reportrole);
report.query();
while(report.next()){
report.roles.deleteRecord();
report.update;
}
Thanks,
Chad
1 ACCEPTED SOLUTION

Mr_X
Mega Guru

Hi @purdue ,
Please use below script.

var reportrole = 'roles=public^title=App Service IDs';
var report = new GlideRecord('sys_report');
report.addEncodedQuery(reportrole);
report.query();
while (report.next()) {
    if (report.roles.indexOf('public') > -1) {
        var arr = report.roles.split(',');
        arr.pop('public');
        report.roles = arr.join(',');
        report.update();
    }
}
If my solution works, please hit the Thumb Icon and mark as Correct!

View solution in original post

3 REPLIES 3

Mr_X
Mega Guru

Hi @purdue ,
Please use below script.

var reportrole = 'roles=public^title=App Service IDs';
var report = new GlideRecord('sys_report');
report.addEncodedQuery(reportrole);
report.query();
while (report.next()) {
    if (report.roles.indexOf('public') > -1) {
        var arr = report.roles.split(',');
        arr.pop('public');
        report.roles = arr.join(',');
        report.update();
    }
}
If my solution works, please hit the Thumb Icon and mark as Correct!

purdue
Kilo Sage

Thanks Mr X.   That works.  I appreciate the help.

Frank59
Tera Contributor

Any chance you have a way to add a role to all reports?  Say ITIL, snc_internal