Question on scripted rest api for order guide
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
10-25-2023 12:56 AM
Hi There,
I have one Requirement On Scripted Rest API,
I have One Order Guide "New hire Request", in that I have added Multiple Items, and now I want to Create This Request and RITM's via Postman, for this I have written one Scripted Rest API
and Created Request via, Postman Application, but in that all the multiple RITM's which we attached in Rule base those are not created,
Please find the below Code of Scripted Rest API, which I have written, and please let me know where I made wrong.
(function process(/*RESTAPIRequest*/ request, /*RESTAPIResponse*/ response) {
var error = '';
var catItem = '';
var cat = new GlideRecord('sc_cat_item_guide');
if (cat.get('name', 'New Hire Request')) {
catItem = cat.sys_id;
}
var cart = new Cart();
var item = cart.addItem(catItem);
var requestersysid = new ceredianUtility().getRequestorSysid(request.body.data.requestor);
cart.setVariable(item, 'requestor', requestersysid);
cart.setVariable(item, 'desk_phone', request.body.data.desk_phone);
cart.setVariable(item, 'desk_phone_number', request.body.data.desk_phone_number);
cart.setVariable(item, 'phone_mac_address', request.body.data.phone_mac_address);
var cartGR = cart.getCart();
cartGR.update();
var rc = cart.placeOrder();
response.setBody({
result: 'Catalog Item request' + rc.number + 'created.'
});
})(request, response);
can anybody please help me on this, how can i create Request and RITM's via Postman.
Thanks,
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
10-25-2023 02:05 AM
Hi @Mani60 ,
There are a few modifications you should consider to ensure it works as expected. Here's a revised version of your script:
(function process(/*RESTAPIRequest*/ request, /*RESTAPIResponse*/ response) {
var error = '';
var catItem = '';
// First, find the order guide based on its name
var guideGR = new GlideRecord('sc_cat_item_guide');
if (guideGR.get('name', 'New Hire Request')) {
catItem = guideGR.sys_id;
} else {
response.setError(400, 'Order guide not found');
return;
}
// Create a new cart
var cart = new Cart();
// Add the order guide to the cart
var item = cart.addItem(catItem);
// Set variables on the order guide item (RITM)
cart.setVariable(item, 'requestor', request.body.data.requestor);
cart.setVariable(item, 'desk_phone', request.body.data.desk_phone);
cart.setVariable(item, 'desk_phone_number', request.body.data.desk_phone_number);
cart.setVariable(item, 'phone_mac_address', request.body.data.phone_mac_address);
// Update the cart
var cartGR = cart.getCart();
cartGR.update();
// Place the order
var rc = cart.placeOrder();
if (rc) {
response.setBody({
result: 'Catalog Item request ' + rc.number + ' created.'
});
} else {
response.setError(400, 'Error creating request');
}
})(request, response);
Thanks,
Ratnakar