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.

Cannot delete record(s) from background script

xiaix
Tera Guru

This is the script I'm trying to run (in Global scope):

(function () {
    gs.print("First, deleting any old records.");
    var record = false;
	record = new GlideRecord('sn_wsd_core_workplace_profile');
    record.query();
	if (record.next()) {
        gs.print("Deleting "+record.getRowCount()+' sn_wsd_core_workplace_profile records.');
        record.deleteMultiple();
    }
	record = new GlideRecord('sn_wsd_core_space');
    record.query();
	if (record.next()) {
        gs.print("Deleting "+record.getRowCount()+' sn_wsd_core_space records.');
        record.deleteMultiple();
    }
	record = new GlideRecord('sn_wsd_core_floor');
    record.query();
	if (record.next()) {
        gs.print("Deleting "+record.getRowCount()+' sn_wsd_core_floor records.');
        record.deleteMultiple();
    }
	record = new GlideRecord('sn_wsd_core_building');
    record.query();
	if (record.next()) {
        gs.print("Deleting "+record.getRowCount()+' sn_wsd_core_building records.');
        record.deleteMultiple();
    }
	record = new GlideRecord('sn_wsd_core_campus');
    record.query();
	if (record.next()) {
        gs.print("Deleting "+record.getRowCount()+' sn_wsd_core_campus records.');
        record.deleteMultiple();
    }
	record = new GlideRecord('sn_wsd_core_site');
    record.query();
	if (record.next()) {
        gs.print("Deleting "+record.getRowCount()+' sn_wsd_core_site records.');
        record.deleteMultiple();
    }
	record = new GlideRecord('sn_wsd_core_region');
    record.query();
	if (record.next()) {
        gs.print("Deleting "+record.getRowCount()+' sn_wsd_core_region records.');
        record.deleteMultiple();
    }
}();

 

This is the result I get:

 

*** Script: First, deleting any old records.
*** Script: Deleting 41 sn_wsd_core_workplace_profile records.
Security restricted: Delete operation against 'sn_wsd_core_workplace_profile' from scope 'rhino.global' has been refused due to the table's cross-scope access policy
*** Script: Deleting 41 sn_wsd_core_space records.
Security restricted: Delete operation against 'sn_wsd_core_space' from scope 'rhino.global' has been refused due to the table's cross-scope access policy
*** Script: Deleting 1 sn_wsd_core_floor records.
Security restricted: Delete operation against 'sn_wsd_core_floor' from scope 'rhino.global' has been refused due to the table's cross-scope access policy
*** Script: Deleting 1 sn_wsd_core_building records.
Security restricted: Delete operation against 'sn_wsd_core_building' from scope 'rhino.global' has been refused due to the table's cross-scope access policy
*** Script: Deleting 1 sn_wsd_core_campus records.
Security restricted: Delete operation against 'sn_wsd_core_campus' from scope 'rhino.global' has been refused due to the table's cross-scope access policy
*** Script: Deleting 1 sn_wsd_core_site records.
Security restricted: Delete operation against 'sn_wsd_core_site' from scope 'rhino.global' has been refused due to the table's cross-scope access policy
*** Script: Deleting 1 sn_wsd_core_region records.
Security restricted: Delete operation against 'sn_wsd_core_region' from scope 'rhino.global' has been refused due to the table's cross-scope access policy

Well, this sucks. So I change my application scope to "Workplace Safety Management", run the script, same issue.
So then, while I'm still in Workplace Safety Management scope, I go to each of those tables and click the "Delete" checkbox:
find_real_file.png

I even go into the Workspace Location table (which is extended by most of the above listed tables) and set "Can delete" to true:
find_real_file.png

I try running the script... same result!

So then I do my least favorite thing of all in ServiceNow... open Studio (bleh)

find_real_file.png

Then try to go into settings:

find_real_file.png

But oh look, isn't this lovely:

find_real_file.png

I mean c'mon.

Anyone know what magic mantra's I need to chant to allow me to run some scripts to clean out old records?

20 REPLIES 20

Allen Andreas
Tera Patron

Hi,

Have you also looked at System Applications > Application Cross-Scope Access?

You may also need to create a record here (operation delete) for this action.

The table settings are 1 thing, this would be the 2nd.

Not restricted caller.

Please mark reply as Helpful/Correct, if applicable. Thanks!


Please consider marking my reply as Helpful and/or Accept Solution, if applicable. Thanks!

Indeed I have, but get this silly error when I try:

 

find_real_file.png

Would you consider not running this from global scope in background? Perhaps use another scope and ensure these steps are done to allow it, etc. and run the script to get this over with?

Please mark reply as Helpful/Correct, if applicable. Thanks!


Please consider marking my reply as Helpful and/or Accept Solution, if applicable. Thanks!

Sure, so get this.. I change my working application scope to "Wallboards" (a custom created scope) and successfully create this record:

 

find_real_file.png

 

 

find_real_file.png

 

 

find_real_file.png

 

This is getting weird.

Hi,

For target name please give the table name and not table label

find_real_file.png

Regards
Ankur

Regards,
Ankur
✨ Certified Technical Architect  ||  ✨ 9x ServiceNow MVP  ||  ✨ ServiceNow Community Leader