The Zurich release has arrived! Interested in new features and functionalities? Click here for more

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
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