Get a first look at what's coming. The Developer Passport Australia Release Preview kicks off March 12. Dive in! 

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

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

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