How to populate the requested_for display value using Scripted Rest API

Santhosh15
Tera Guru

Hello All,

When I am trying to post the data using json, the value for requested_for reference field is not showing the name its showing has empty.

If I am posting the data using sys_id of the user then it is taking up and showing the correct value.

Could you please help me on this issue, when i try to insert with name, then it will show the name of the user in reference field.

Please help me on below code

(function process( /*RESTAPIRequest*/ request, /*RESTAPIResponse*/ response) {

    // implement resource here
    var reqbody = request.body.dataString;

    try {
        var parser = new global.JSON();
        var parsedData = parser.decode(reqbody);

        var requestedFor = parsedData.requested_for;

       var assignmentGroup = parsedData.assignment_group;

        var cartId = GlideGuid.generate(null);
        var cart = new Cart(cartId);

        var item = cart.addItem('afb8ddb7137dab0046d252722244b009', 1); //Catalog item name

        //fill in the variables on the request item form
        cart.setVariable(item, 'requested_for', requestedFor);

        cart.setVariable(item, 'assignmentGroup', assignment_group);

        var rc = cart.placeOrder();

        // rc is the request number; you can query RITM table and get the RITM number

        var reqNumber = rc.number;

        var ritm = new GlideRecord('sc_req_item');
        ritm.get('request.number', reqNumber);
        var ritmNumber = ritm.number;

        var res = {};
        res["status"] = "Success";
        res["requestNumber"] = reqNumber;
        res["requestItemNumber"] = ritmNumber;
        response.setBody(res);

    } catch (ex) {
        var res = {};
        res["status"] = "Error";
        res["message"] = ex.message;
       // response.setBody(JSON.stringify(res));
        response.setBody(res);
    }

})(request, response);

Thanks

@Ankur Bawiskar  @Mohith Devatte @Aman Kumar @Sandeep Dutta 

1 ACCEPTED SOLUTION

added this two lines which palani suggested

var grUser = new GlideRecord('sys_user');
        grUser.get('user_name',requestedFor);

 

It working fine now

Thanks @palanikumar 

View solution in original post

14 REPLIES 14

I am using ootb fields

Then use this code. Highlighted the changes:

(function process( /*RESTAPIRequest*/ request, /*RESTAPIResponse*/ response) {

    // implement resource here
    var reqbody = request.body.dataString;

    try {
        var parser = new global.JSON();
        var parsedData = parser.decode(reqbody);

        var requestedFor = parsedData.requested_for;

       var assignmentGroup = parsedData.assignment_group;

        var cartId = GlideGuid.generate(null);
        var cart = new Cart(cartId);

        var item = cart.addItem('afb8ddb7137dab0046d252722244b009', 1); //Catalog item name

        //fill in the variables on the request item form
        //cart.setVariable(item, 'requested_for', requestedFor);

        cart.setVariable(item, 'assignmentGroup', assignment_group);

        var rc = cart.placeOrder();

        rc.requested_for = requestedFor;

        rc.update();

        // rc is the request number; you can query RITM table and get the RITM number

        var reqNumber = rc.number;

        var ritm = new GlideRecord('sc_req_item');
        ritm.get('request.number', reqNumber);
        var ritmNumber = ritm.number;

        var res = {};
        res["status"] = "Success";
        res["requestNumber"] = reqNumber;
        res["requestItemNumber"] = ritmNumber;
        response.setBody(res);

    } catch (ex) {
        var res = {};
        res["status"] = "Error";
        res["message"] = ex.message;
       // response.setBody(JSON.stringify(res));
        response.setBody(res);
    }

})(request, response);

Thank you,
Palani

I will try your code and let you know

Now requested_for value is populating correctly only in Requested item field not on variable tab when i given display value in JSON. 

added this two lines which palani suggested

var grUser = new GlideRecord('sys_user');
        grUser.get('user_name',requestedFor);

 

It working fine now

Thanks @palanikumar