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