Join the #BuildWithBuildAgent Challenge! Get recognized, earn exclusive swag, and inspire the ServiceNow Community with what you can build using Build Agent.  Join the Challenge.

Fix Script to update value from another table

Sheryl Lyke1
Kilo Contributor

I need to update multiple values in a table with values from a newly imported table. This is a one time fix so I'm trying with a fix script. When I run it, no values are updated but there are also no errors.

I imported the new vendor numbers into a table (u_updatecanadavendors) that has current vendor number and new vendor number. I just want to update the vendor_code in the existing talbe (ap_vendor) with the new vendor number where the current vendor numbers match. I can't do this with a transform map because it's the foreign key that is being updated.

Is there a better approach to this. It seems like it should be a simple request. I'm new-ish to SN and have more experience in SQL. I want something similar to an update table query where the tables are joined on foreign key of current vendor number.

var gr = new GlideRecord('u_updatecanadavendors');

gr.addQuery('u_erp','Canada');

gr.query();

while(gr.next()){

  var vend = new GlideRecord('ap_vendor');

  vend.addQuery('vendor_code','gr.u_vendor_number');

  vend.query();

  if(vend.next()){

        vend.vendor_code = gr.u_new_vendor_number;

        vend.update();

}

}

*Duplicate question worded differently and changed script.

1 ACCEPTED SOLUTION

Jon Barnes
Kilo Sage

check this line:


vend.addQuery('vendor_code','gr.u_vendor_number');



it should be


vend.addQuery('vendor_code',gr.u_vendor_number);



I can't confirm this will fix it yet cause I don't know the structure of those tables, but try that and see if it works.


View solution in original post

8 REPLIES 8

Good catch. But still no luck


What are field types for the following fields


1)u_erp


2)u_vendor_number


4)u_new_vendor_number


5)vendor_code


Sheryl Lyke1
Kilo Contributor

Thank you Jonathan and Abhinay! You both pointed me in the right direction. I removed the quotes and then when checking the field types of both tables realized they had cleared the updated vendor table in the dev environment. Once I reloaded it, it worked.


mani55
Tera Contributor

(function executeRule(current, previous /*null when async*/) {

 

 

 

var gr = new GlideRecord('cmdb_ci_comm');

gr.addQuery(‘phone_number ‘’);//comm

gr.addQuery(‘u_carrier ‘’);//comm;

gr.addQuery(‘assigned_to’);//comm;

 

if( gr.next() ) {

 

 

gr.setValue('phone_number',current.phone_number);

gr.setValue('u_carrier',current.carrier);

gr.setValue('assigned_to',current.employee_id);

gr.update();

}

 

Its not updating one table to another table