Trying to Submit another catalog item from current catalog

Ram050670
Tera Guru

Hello All, need some help.

i am trying to submit another catalog item via current catalog form and i have all the variables mapped to the new form and after submiting current request its generating the new item with all the details except the RITM request.requested_for is not generating as per the variable requested_for.

Just need the Requested for Variable and RITM requested for should be same

 

var requestedFor = current.variables.requested_for;
var phonetype = current.variables.phone_system;

var dateneededby = current.variables.expected_start_date;

var cartId = GlideGuid.generate(null);
var cart = new Cart(cartId);
var item = cart.addItem('sys id of item', 1);
//fill in the variables on the request item form
cart.setVariable(item, "requested_for", requestedFor);
cart.setVariable(item, "need_by_date", dateneededby);

cart.setVariable(item, "type_of_phone_system", phonetype);


var rc = cart.placeOrder();

 

i am not sure if this is right.

i am doing this in workflow runscript as soon as the request is submited to generate new item request.

 

 

1 ACCEPTED SOLUTION

Harsh Vardhan
Giga Patron

Hi @Ram050670  - Try with below scripts.

 



var requestedFor = current.variables.requested_for;
var phonetype = current.variables.phone_system;
var dateneededby = current.variables.expected_start_date;
var cartId = GlideGuid.generate(null);
var cart = new Cart(cartId);
var item = cart.addItem('sys id of item', 1);
//fill in the variables on the request item form
cart.setVariable(item, "requested_for", requestedFor);
cart.setVariable(item, "need_by_date", dateneededby);
cart.setVariable(item, "type_of_phone_system", phonetype);
var rc = cart.placeOrder();

var reqRecord = new GlideRecord('sc_request');
reqRecord.get(rc.sys_id);
reqRecord.requested_for = requestedFor;
reqRecord.update();

View solution in original post

10 REPLIES 10

It should be something like this. 

Quick Example:

 

var requestedFor = current.variables.<variableName>;
var cart = new sn_sc.CartJS();
cart.setRequestedFor(requestedFor); // This will set Request requested for
var item ={
'sysparm_id': '<sysid Of the ITem>',
'sysparm_quantity': '1',
'variables':{
'<VariableName>': requestedFor
}};

var cartVals = cart.addToCart(item);
var checkoutVals = cart.checkoutCart();



 

Hope it will help you. 

 

 

var requestedFor = current.variables.request_for;
var cart = new sn_sc.CartJS();
cart.setRequestedFor(requestedFor); // This will set Request requested for
var item = {
'sysparm_id': 'sysid of item',
'sysparm_quantity': '1',
'variables': {
'requested_for': requestedFor,
'need_by_date': dateneededby,
'type_of_phone_system': phonetype,

}
};

var cartVals = cart.addToCart(item);
var checkoutVals = cart.checkoutCart();

 

output: empty

Naneen_0-1695164080426.pngNaneen_1-1695164112832.png

 

@Harsh Vardhan 

I used this solution and updated the other catalog item workflow approvals with variable. 

Thanks again!!

also can you Help me update the Opened by on RITM?

 

//Update Req for on RITM
var reqRecord = new GlideRecord('sc_request');
reqRecord.get(rc.sys_id);
reqRecord.requested_for = requestedFor;
reqRecord.opened_by = openedby;
reqRecord.update();

 

i have added Opened by also but its updating REQ but not in RITM. can you help on this?

Harsh Vardhan
Giga Patron

@Ram050670  Can you try to pass requested for as an argument in Cart() method ?

 

Eg: 

 

 

var requestedFor = current.variables.requested_for;
var phonetype = current.variables.phone_system;

var dateneededby = current.variables.expected_start_date;

var cartId = GlideGuid.generate(null);
var cart = new Cart(cartId , requestedFor);  // added here
var item = cart.addItem('sys id of item', 1);
//fill in the variables on the request item form
cart.setVariable(item, "requested_for", requestedFor);
cart.setVariable(item, "need_by_date", dateneededby);

cart.setVariable(item, "type_of_phone_system", phonetype);


var rc = cart.placeOrder();