Question on scripted rest api for order guide

Mani60
Tera Contributor

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,

1 REPLY 1

Ratnakar7
Mega Sage
Mega Sage

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