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.

How to set value of reference field using cart API

User376281
Kilo Contributor

Hi All,

I am using cart API to create an RITM.Ran the below code in after BR.I am able to set the values of all the string fields except  reference field.May I know what is wrong with my code

"u_manager_name" is a string field of remote table and I am trying to pass the sys_id of the manager to "requested_for_manager"

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

var manager= current.u_manager_name;
//gs.addInfoMessage(manager);

 

var cartId = GlideGuid.generate(null);
var cart = new Cart(cartId);
var item = cart.addItem('023ab357dbaf50103726a4f6d4961998');
cart.setVariable(item, "first_name", current.u_first_name);
cart.setVariable(item, "last_name", current.u_last_name);
cart.setVariable(item, "preferred_first_name", current.u_preferred_first_name);
cart.setVariable(item, "preferred_last_name", current.u_preferred_last_name);
cart.setVariable(item, "requested_for_manager", managerSysID);//here it is a reference field
cart.setVariable(item, "elt_representative", current.u_elt_representative);
cart.setVariable(item, "hr_representative", current.u_hr_representative);

var rc = cart.placeOrder();
gs.addInfoMessage(rc.number);
gs.addInfoMessage(managerSysID);


var mgr = new GlideRecord('sys_user');
mgr.addQuery('name', manager);
mgr.query();
while (mgr.next()) {
var managerSysID= mgr.sys_id;
return managerSysID;
}

 

Thanks for the help in advance!!!

1 ACCEPTED SOLUTION

Mike Patel
Tera Sage

try below

var manager = current.u_manager_name;
//gs.addInfoMessage(manager);

var cartId = GlideGuid.generate(null);
var cart = new Cart(cartId);
var item = cart.addItem('023ab357dbaf50103726a4f6d4961998');
cart.setVariable(item, "first_name", current.u_first_name);
cart.setVariable(item, "last_name", current.u_last_name);
cart.setVariable(item, "preferred_first_name", current.u_preferred_first_name);
cart.setVariable(item, "preferred_last_name", current.u_preferred_last_name);
cart.setVariable(item, "elt_representative", current.u_elt_representative);
cart.setVariable(item, "hr_representative", current.u_hr_representative);

var mgr = new GlideRecord('sys_user');
mgr.addQuery('name', manager);
mgr.query();
if (mgr.next()) {
    var managerSysID = mgr.sys_id;
    cart.setVariable(item, "requested_for_manager", managerSysID); //here it is a reference field
}

var rc = cart.placeOrder();
gs.addInfoMessage(rc.number);

View solution in original post

2 REPLIES 2

Mike Patel
Tera Sage

try below

var manager = current.u_manager_name;
//gs.addInfoMessage(manager);

var cartId = GlideGuid.generate(null);
var cart = new Cart(cartId);
var item = cart.addItem('023ab357dbaf50103726a4f6d4961998');
cart.setVariable(item, "first_name", current.u_first_name);
cart.setVariable(item, "last_name", current.u_last_name);
cart.setVariable(item, "preferred_first_name", current.u_preferred_first_name);
cart.setVariable(item, "preferred_last_name", current.u_preferred_last_name);
cart.setVariable(item, "elt_representative", current.u_elt_representative);
cart.setVariable(item, "hr_representative", current.u_hr_representative);

var mgr = new GlideRecord('sys_user');
mgr.addQuery('name', manager);
mgr.query();
if (mgr.next()) {
    var managerSysID = mgr.sys_id;
    cart.setVariable(item, "requested_for_manager", managerSysID); //here it is a reference field
}

var rc = cart.placeOrder();
gs.addInfoMessage(rc.number);

Thanks it worked