Find your people. Pick a challenge. Ship something real. The CreatorCon Hackathon is coming to the Community Pavilion for one epic night. Every skill level, every role welcome. Join us on May 5th and learn more here.

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