- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
02-01-2023 09:09 AM
Hi all,
In the hardware table we have duplicate assets with same serial number.
I want to filter out which assets are having same serial number. and delete the oldest records and keep the newly created assets.
I need to build script to delete data.
Can I get any sample script to complete my task?
Thanks in advance
Solved! Go to Solution.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
02-01-2023 09:37 AM - edited 02-01-2023 09:39 AM
Hello prince,
Try this script in test environment:
var gr = new GlideRecord('alm_asset');
gr.addQuery('serial_number', '!=', '');
gr.groupBy('serial_number');
gr.query();
while (gr.next()) {
var serialNumber = gr.getValue('serial_number');
var gr2 = new GlideRecord('alm_asset');
gr2.addQuery('serial_number', serialNumber);
gr2.addQuery('sys_created_on', '<', gr.getValue('sys_created_on'));
gr2.query();
while (gr2.next()) {
gr2.deleteRecord();
}
}
backup your data before executing script to prevent data loss
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
02-01-2023 09:37 AM - edited 02-01-2023 09:39 AM
Hello prince,
Try this script in test environment:
var gr = new GlideRecord('alm_asset');
gr.addQuery('serial_number', '!=', '');
gr.groupBy('serial_number');
gr.query();
while (gr.next()) {
var serialNumber = gr.getValue('serial_number');
var gr2 = new GlideRecord('alm_asset');
gr2.addQuery('serial_number', serialNumber);
gr2.addQuery('sys_created_on', '<', gr.getValue('sys_created_on'));
gr2.query();
while (gr2.next()) {
gr2.deleteRecord();
}
}
backup your data before executing script to prevent data loss