Background script to copy a value from one field to another.

carlh
Kilo Guru

Hello All.

One my first day working in Service Now, I added a custom reference field called "Club Name" (u_locationref_1) to the incident form.

I didn't realize at the time that there is some out of the box functionality built using the "location" field.   We ended up with about 100k incidents where the "location" field is blank but the good news in I do have the values in my custom field.

I need a background script that will go in to every incident and copy the value of my "Club Name" (u_locationref_1) to the "Location" field and not send notifications or run BR's?

Once it's done, I will be able to delete the custom field and just use location.

Can any one help?

Thanks

Carl

1 ACCEPTED SOLUTION

Pradeep Sharma
ServiceNow Employee
ServiceNow Employee

Hi Carl,



Here you go.


updateincidents();


function updateincidents()


{


var gr = new GlideRecord('incident');


//gr.addQuery('u_locationref_1ISNOTEMPTY'); add this line if you want to filter records i.e locationref is not empty


gr.query();


while(gr.next())


  {


  gr.location = gr.getValue('u_locationref_1');


  gr.setWorkflow(false);


  gr.autoSysFields(false);


  gr.update();


}


}


Background Scripts — ServiceNow Elite


View solution in original post

18 REPLIES 18

Chuck Tomasi
Tera Patron

Hi Carl,



I think Pradeep may have gotten the assignment backwards.



(function () {


  var gr = new GlideRecord('incident');


  gr.query();


  while(gr.next()) {


            gr.location = gr.getValue('u_locationref_1');


            gr.autoSysFields(false);


            gr.setWorkflow(false);


            gr.update();


  }


})();


That was typo error. Corrected now.


Thanks Chuck.


Abhinay Erra
Giga Sage

Please tag me, so that I can respond asap. Pradeep is already close to 1 million mark, I do not think he is desperate for points


I am as ctomasi is chasing me badly