difference between deleteRecord() and deleteMultiple()

skumar_srbh
Tera Guru

Could you please help to understand the difference/uses between "deleteRecord" and "deleteMultiple".

Thanks in advance!!!

8 REPLIES 8

Mike Patel
Tera Sage

deleteRecord will delete single record and deleteMultiple will delete multiple.

lets say you are querying some table and get 10 records back and

if you want to delete all 10 at once you use deleteMultiple 

if you want to delete one record at time then you use deleteRecord.

Thanks...

I am using below 2 scripts and after the query, 2000 records has to be deleted via both the scripts.

Noticing that the first script is taking way much time as compare to 2nd to delete a record. 

var gr = new GlideRecord('test');
gr.addEncodedQuery('where mode = xyz');
gr.query();
while (gr.next()) {
gr.deleteMultiple();
gr.setWorkflow(false);
}

----------------------------------------------------


var gr = new GlideRecord('test');
gr.addEncodedQuery('where mode = xyz');
gr.query();
while (gr.next()) {
gr.deleteRecord();
gr.setWorkflow(false);
}

 

should I directly use the 2nd script? as both works for deletion only...

1st script needs be like

var gr = new GlideRecord('test');
gr.addEncodedQuery('where mode = xyz');

gr.setWorkflow(false);

gr.deleteMultiple();

 

also add gr.setWorkflow(false); before you do delete

Some benefits using deleteMultiple - https://snowunderground.com/blog/2019/8/18/deleting-fast-in-servicenow

Phil Swann
Tera Guru
Tera Guru

Please refer to API documentation: 

https://developer.servicenow.com/dev.do#!/reference/api/orlando/server/no-namespace/c_GlideRecordSco... 

 

it also depends where you want to execute, e.g. looping through a list of records that meet certain criteria and want to be tested further, you can put the gliderecord deleteRecord() within the while loop.

deleteRecord method does require that you execute the .query() first

deleteMultiple does not require this