How to populate the correct Requested_for value on RITM 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 filling with opened by field value on RITM Requested_for value.

Could you please help me on this issue,

(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 Type = parsedData.type;
        var needsJavaInstalled = parsedData.needs_java_installed;
        var Environment = parsedData.environment;
        var shortDescription = parsedData.short_description;
        var Description = parsedData.description;
        var assignment_group = parsedData.assignment_group;
        var assignedTo = parsedData.assigned_to;
        var closeImmediately = parsedData.close_immediately;
        var closingComments = parsedData.closing_comments;

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

        // give here the sys_id of the catalog item under which those variables are present

        var item = cart.addItem('afb8ddb7137dab0046d252722244b009', 1); //request Oracle Sysadmin Access (Legacy PCS)
        var grUser = new GlideRecord('sys_user');
        grUser.get('user_name',requestedFor);
        //fill in the variables on the request item form
        cart.setVariable(item, 'requested_for', grUser.sys_id);
        cart.setVariable(item, "type", Type);
        cart.setVariable(item, "needs_java_installed", needsJavaInstalled);
        cart.setVariable(item, "environment", Environment);
        cart.setVariable(item, "short_description", shortDescription);
        cart.setVariable(item, "description", Description);
        cart.setVariable(item, "assignment_group", assignment_group);
        cart.setVariable(item, "assigned_to", assignedTo);
        cart.setVariable(item, "close_immediately", closeImmediately);
        cart.setVariable(item, "closing_comments", closingComments);

        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);

 

@Ankur Bawiskar  @palanikumar  @Mohith Devatte  @Harish KM @Aman Kumar @Maik Skoddow 

1 ACCEPTED SOLUTION

Hello @palanikumar @Aman Kumar ,

After updating this below code, I am getting correct value in Requestor for field.

 rc.requested_for = grUser.sys_id;
 rc.update();

Thanks for your help

View solution in original post

10 REPLIES 10

Wojtek Winnicki
Tera Guru

Hello @D Kumar Swamy 

try after this lines:

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

 adding:

ritm.requested_for= grUser.sys_id;
ritm.update()

Santhosh15
Tera Guru

@Wojtek Winnicki still it is not working

@D Kumar Swamy 

What is in the "var requestedFor = parsedData.requested_for;"? Are you sure that it is matching user_name field on sys_user table? Is "requested_for" variable correctly populated?

Please also try method that @palanikumar and @Aman Kumar have mentioned.

@Wojtek Winnicki Yes, i am getting correct values in Variables tab requestor for. But i am not getting correct value on RITM form fields, which is copying data from opened by field.