How to use deleteMultiple

Supriya25
Tera Guru

Hi Team,

kindly help me on how to use deleteMultiple, which is best practice.

 

var gr = new GlideRecord('incident');

gr.addQuery('activ=false');

gr.query();

if(gr.next())

{

gr.deleteMultiple();

}

 

OR

 

var gr = new GlideRecord('incident');

gr.addQuery('activ=false');

gr.query();

gr.deleteMultiple();

 

6 REPLIES 6

sushantmalsure
Mega Sage
Mega Sage

the 2nd one is the best practice for multiple deletion.

For example:

 var gr = new GlideRecord('incident');
  gr.addQuery('caller_id', gs.getUserID() );
  gr.query();
  gr.deleteMultiple();

THis is to delete all incidents where caller was logged in user.

This gives you a great performance as we will not be iterating over the GR object.

 

The 1st one will have a performance degradation because you are iterating over object and then delete it.

 

You can also refer to following article for more understanding:

https://www.servicenow.com/community/developer-articles/servicenow-glide-record-deleterecord-vs-dele...

 

By the way script added in your example have spelling mistake of active as field name and you need to user encoded query instead of add query, correct line as following:

gr.addEncodedQuery('active=false');

 

 

If my answer has helped with your question, please mark my answer as accepted solution and give a thumb up.
Regards,Sushant Malsure

why don't we use  ??? below one 

if i Use what is the issue ?

 

var gr = new GlideRecord('incident');

gr.addQuery('activ=false');

gr.query();

if(gr.next())

{

gr.deleteMultiple();

}

Hi @Supriya25 

The script you provided here has mistake.

instead of gr.addQuery('activ=false'); you need to correct here like gr.addEncodedQuery('active=false'); OR gr.addQuery('active',false); .

Now coming below you have used if instead of while , IF will delete just one record where as While will iterate over all set and delete all the active=false records.

 

Now how to use deleteMultiple() or deleteRecord() for deletion you can refer following for best practice:

https://www.servicenow.com/community/developer-articles/servicenow-glide-record-deleterecord-vs-dele...

If my answer has helped with your question, please mark my answer as accepted solution and give a thumb up.
Regards,Sushant Malsure

You don't need to call .query() or .next().

 

Example:

 

var recs = new GlideRecord('incident');
recs.addEncodedQuery("active=false^number=INC0009004^ORnumber=INC0009003");
recs.deleteMultiple();