- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
10-02-2019 12:14 PM
Hello,
I am using a scripted REST API to do an close operation but unfortunately it does return an empty response but when i am trying to print the object it does works fine.
Code -
(function process(/*RESTAPIRequest*/ request, /*RESTAPIResponse*/ response) {
var LOG_SOURCE = 'REQUEST API:POST:CLOSE CTASK';
var reqBody = request.body.data;
var taskNumber = request.body.data.task_number;
var workNotes = request.body.data.work_notes;
var state = request.body.data.state;
var successMessage = "Task update successful";
var failureMessage = "Task update failure. Please raise an incident to ESM-Frontline and provide message body and response.";
var inValidMessage = "Not a valid Catalog Task Number. Please provide a valid catalog task number associated to RITM";
var responseObj = {};
if(!reqBody.hasOwnProperty('task_number') || !reqBody.hasOwnProperty('state') ){
responseObj= generateResponse(2,taskNumber, "Please provide a valid Task# and State value");
return responseObj;
}
// Get the target change number from the request body.
var accessKey = request.body.data.access_key;
// Verify API Customer
var apiAuthorization = new APIAuthorization(request, accessKey, null);
if (!apiAuthorization.isAuthorized()) {
gs.log('Error: ' + accessKey + ' not authorized', LOG_SOURCE);
return {
status: 2,
responseText: apiAuthorization.message()
};
}
//Updat Catalog Task
updateTask(taskNumber,workNotes,state);
function updateTask(taskNumber,workNotes,state){
try{
var cTaask = new GlideRecord("sc_task");
cTaask.addEncodedQuery('active=true^number='+taskNumber);
cTaask.query();
if(cTaask.next()){
cTaask.work_notes = workNotes;
cTaask.state = state;
cTaask.update();
responseObj = generateResponse(1,taskNumber,successMessage);
}else{
responseObj = generateResponse(2,taskNumber,inValidMessage);
}
gs.info("responseObj : " + responseObj); //DOES print correct object
return responseObj; // DOES not return any value
}
catch(e){
gs.error("Task update failure for " + taskNumber, LOG_SOURCE);
responseObj= generateResponse(2,taskNumber,failureMessage);
return responseObj;
}
}
//Generate Catalog Item Response
function generateResponse(statusCode,number,message){
gs.info("inside response body method : " + message);
return JSON.stringify({ 'status': statusCode.toString(), 'Task#': number.toString(), 'responseText': message.toString()});
}
})(request, response);
Not sure what i am missing here ?
Thank you,
Eash
Solved! Go to Solution.

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
10-02-2019 12:33 PM
HI,
Can you try putting below code:
//Updat Catalog Task
var res = updateTask(taskNumber,workNotes,state);
gs.info(res);
Thanks,
Ashutosh

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
10-02-2019 12:33 PM
HI,
Can you try putting below code:
//Updat Catalog Task
var res = updateTask(taskNumber,workNotes,state);
gs.info(res);
Thanks,
Ashutosh