How To Delete Multiple Records With deleteMultiple()

NOTE: Be careful with deleteMultiple() – You are deleting data. Use with caution. The Strategic Use of deleteMultiple() As a ServiceNow Developer/Consultant, I’ve often encountered situations where bulk deletion of records is necessary. This is …

How to delete multiple records

Buy The "ServiceNow Developer's Manual" Now

We've packed over a decade of ServiceNow Development advice, into a single e-book.

Buy It Now

The Strategic Use of deleteMultiple()

As a ServiceNow Developer/Consultant, I’ve often encountered situations where bulk deletion of records is necessary.

This is where deleteMultiple() comes into play. This GlideRecord method is a powerful tool for deleting all records that match a specified query.

Why is this beneficial?

Imagine needing to clear out redundant or obsolete data in bulk – deleteMultiple() accomplishes this efficiently. However, it’s crucial to use this method judiciously; indiscriminate use can lead to unintended data loss, especially because it doesn’t support dot-walking and ignores setWorkflow() calls when used in cascade deletion scenarios.

Appropriate Contexts and Best Practices

deleteMultiple() is strictly a server-side tool, designed for use in server scripts such as business rules or background scripts.

It’s particularly handy for housekeeping tasks like cleaning up test data or removing inactive records. When using deleteMultiple(), one must ensure to accurately define the query to prevent accidental deletion of important data. Also, it’s important to note that this method does not delete attachments associated with the records.

Implementing deleteMultiple(): An Example

Let’s look at a practical example. Say we need to delete all inactive incidents from the Incident table. Here’s how you’d go about it:

var incidentGR = new GlideRecord('incident');
incidentGR.addQuery('active', 'false');
incidentGR.query();
incidentGR.deleteMultiple();

In this script, I first define the query to select all inactive incidents. After executing the query with incidentGR.query(), I use incidentGR.deleteMultiple() to delete all these records. This method is straightforward yet powerful, making bulk deletions a breeze.

Common Pitfalls and Performance Considerations

A significant pitfall with deleteMultiple() is overuse or misuse, leading to accidental loss of data. Always double-check your queries and understand the full scope of records they encompass. Additionally, for large-scale deletions, consider the impact on database performance and plan these operations during off-peak hours to minimize disruption. Remember, with great power comes great responsibility, especially when it comes to data management in ServiceNow.


In conclusion, deleteMultiple() is an invaluable tool in a ServiceNow developer’s arsenal for efficient bulk deletion of records. Used wisely, it can significantly streamline data management tasks, but it requires careful handling to avoid unintended consequences. With these insights, developers can harness the power of deleteMultiple() to maintain clean and efficient ServiceNow environments.



What Do You Think About This Article?

5 1 vote
Article Rating
Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x