Delete Duplicate Serial Number assests

Prince Sai
Giga Expert

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

1 ACCEPTED SOLUTION

Prasad Dhumal
Mega Sage
Mega Sage

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

View solution in original post

1 REPLY 1

Prasad Dhumal
Mega Sage
Mega Sage

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