Welcome to Community Week 2025! Join us to learn, connect, and be recognized as we celebrate the spirit of Community and the power of AI. Get the details  

Background Script to remove character at end

purdue
Kilo Sage

Hello,

 

I need to write a background script to remove _) from end of serial number in alm_hardware.   Any assistance is appreciated.

Thanks,

Chad

 

1 ACCEPTED SOLUTION

Jyoti Jadhav9
Tera Guru

Hi @purdue ,

 

You can try below background scripts:

Script 1:

var al = new GlideRecord("alm_hardware");
al.addEncodedQuery("serial_numberENDSWITH_)");
al.query();
while(al.next()){
gs.print("Before Update:"+al.getValue("serial_number"));
var str = al.getValue("serial_number").toString();
var str1 = str.split('_');
gs.print("After Update:"+str1[0]);
al.setValue('serial_number',str1[0]);
al.setWorkflow(false);
al.autoSysFields(false);
al.update();
}

 

OR

 

Script 2:

var al = new GlideRecord("alm_hardware");
al.addEncodedQuery("serial_numberENDSWITH_)");
al.query();
while(al.next()){
gs.print("Before Update:"+al.getValue("serial_number"));
var str = al.getValue("serial_number").toString();
var str1 = str.replace(/[^a-zA-Z0-9]/g, '')
gs.print("After Update:"+str1);
al.setValue('serial_number',str1);
al.setWorkflow(false);
al.autoSysFields(false);
al.update();
}

 

Please hit the like button if my suggestion has helped you in any way.
Please mark correct if my response has solved your query.

 

Thanks & Regards

Jyoti Jadhav

View solution in original post

5 REPLIES 5

Danish Bhairag2
Tera Sage

Hi @purdue,

 

If u want to do it for all existing records then please use the below script

 

var serialNo = '';
var gr = new GlideRecord('alm_hardware');
gr.addEncodedQuery('serial_number!=NULL');//only check for serial numbers which are not empty
gr.query();
while(gr.next()){
serialNo = gr.serial_number.split('_');
gr.serial_number = serialNo[0];
gr.update();
}

 

Thanks,

Danish

 

AshishKM
Kilo Patron
Kilo Patron

Hi @purdue , 

Please use the below script to update existing serial number having "_)" in last.

Test with if condition, to check one record update only and after test successful, you can again use the while loop.

var serialTemp;
var grHardWare = new GlideRecord("alm_hardware");
    grHardWare.addQuery("serial_numberENDSWITH_)");
    grHardWare.query();

while(grHardWare.next()){
   serialTemp = grHardWare.serial_number;
   serialTemp.substr(0,serialTemp.length-2); // remove the last 2 character
   grHardWare.serial_number=serialTemp; // set the new value
   grHardWare.update();
} 

-Thanks,

AshishKM

 


Please mark this response as correct and helpful if it helps you can mark more that one reply as accepted solution

Jyoti Jadhav9
Tera Guru

Hi @purdue ,

 

You can try below background Script:

 

var al = new GlideRecord("alm_hardware");
al.addEncodedQuery("serial_numberENDSWITH_)");
al.query();
while(al.next()){
gs.print("Before Update:"+al.getValue("serial_number"));
var str = al.getValue("serial_number").toString();
var str1 = str.replace(/[^a-zA-Z0-9]/g, '')
gs.print("After Update:"+str1);
al.setValue('serial_number',str1);
al.setWorkflow(false);
al.autoSysFields(false);
al.update();
}

 

Please hit the like button if my suggestion has helped you in any way.
Please mark correct if my response has solved your query.

 

Thanks & Regards

Jyoti Jadhav

 

Jyoti Jadhav9
Tera Guru

Hi @purdue ,

 

You can try below background scripts:

Script 1:

var al = new GlideRecord("alm_hardware");
al.addEncodedQuery("serial_numberENDSWITH_)");
al.query();
while(al.next()){
gs.print("Before Update:"+al.getValue("serial_number"));
var str = al.getValue("serial_number").toString();
var str1 = str.split('_');
gs.print("After Update:"+str1[0]);
al.setValue('serial_number',str1[0]);
al.setWorkflow(false);
al.autoSysFields(false);
al.update();
}

 

OR

 

Script 2:

var al = new GlideRecord("alm_hardware");
al.addEncodedQuery("serial_numberENDSWITH_)");
al.query();
while(al.next()){
gs.print("Before Update:"+al.getValue("serial_number"));
var str = al.getValue("serial_number").toString();
var str1 = str.replace(/[^a-zA-Z0-9]/g, '')
gs.print("After Update:"+str1);
al.setValue('serial_number',str1);
al.setWorkflow(false);
al.autoSysFields(false);
al.update();
}

 

Please hit the like button if my suggestion has helped you in any way.
Please mark correct if my response has solved your query.

 

Thanks & Regards

Jyoti Jadhav