{"error":{"message":"com.glide.rest.util.RESTRuntimeException: The payload is not valid JSON.","deta
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
05-17-2023 02:40 AM - edited 05-17-2023 02:42 AM
we have done one Rest mesage integration with 3rd party serviocenow
Here i am trying to send updated worknotes to there side whene any incidents gets updated at my side.
Howvevevr gettiong below mentioned 3 errors.
I asked 3rd party to check the URL what they have provided us as getting error related to their URL only, howvever they said the URL or endpoint is correct it is happening because when we are sending them the wornotes to them the json format is not correct as getting that error also, so they asked me to check the json format if iots correct
Below is my BR that i am using, could you please tell me how can i validate my json payload that i am sending
(function executeRule(current, previous /*null when async*/ ) {
if (current.u_external_ticket_no == '') {
gs.log("OUTISE LOOP","Sequence 1 Test");
try {
gs.log("Inside Try Create LOOP","Sequence 2 Test");
var rInsert = new sn_ws.RESTMessageV2('Ultima', 'Create Incident');
var descbody = current.description;
descbody = descbody.replace(/(\r\n|\n|\r|\\n)/gm, "");
descbody = JSON.stringify(descbody);
descbody = descbody.replace(/"/g, "'");
descbody = descbody.replace(/\\/g, "\\\\");
var shortDesc = current.short_description;
shortDesc = shortDesc.replace(/(\r\n|\n|\r|\\n)/gm, "");
shortDesc = JSON.stringify(shortDesc);
shortDesc = shortDesc.replace(/"/g, "'");
shortDesc = shortDesc.replace(/\\/g, "\\\\");
rInsert.setStringParameterNoEscape('short_description', shortDesc);
rInsert.setStringParameterNoEscape('description', descbody);
rInsert.setStringParameterNoEscape('caller_id', 'Costa_API_user');
rInsert.setStringParameterNoEscape('impact', current.impact);
rInsert.setStringParameterNoEscape('urgency', current.urgency);
rInsert.setStringParameterNoEscape('state', 1);
rInsert.setStringParameterNoEscape('contact_type', 'Integration');
rInsert.setStringParameterNoEscape('category', '910'); // cloud
rInsert.setStringParameterNoEscape('subcategory', '1015'); // virtual
rInsert.setStringParameterNoEscape('u_customer_reference', current.number);
var insertResponse = rInsert.execute();
var insertResponseBody = insertResponse.getBody();
var insertHttpStatus = insertResponse.getStatusCode();
var parsedData = JSON.parse(insertResponseBody);
gs.log('checking status code ' + '' + insertHttpStatus);
gs.log(parsedData.result.number + " Ultima Incident creation response : " + insertResponseBody, 'UltimaINCInsert');
current.u_external_ticket_no = parsedData.result.number;
current.state =11;
current.update();
} catch (ex) {
var message = ex.message;
}
} else {
gs.log('testing 1');
try { gs.log("Inside Try Update LOOP","Sequence 3 Test");
var rUpdate = new sn_ws.RESTMessageV2('Ultima', 'Update Incident');
var req = '{"u_customer_reference":"' + current.number + '"';
if (current.impact.changes())
req = req + ',"impact":"' + current.impact + '"';
if (current.urgency.changes())
req = req + ',"urgency":"' + current.urgency + '"';
if (current.work_notes.changes()) {
var workNotes = current.work_notes.getJournalEntry(1);
workNotes = workNotes.replace(/(\r\n|\n|\r|\\n)/gm, "");
workNotes = JSON.stringify(workNotes);
workNotes = workNotes.replace(/"/g, "'");
workNotes = workNotes.replace(/\\/g, "\\\\");
req = req + ',"work_notes":"' + workNotes + '"';
}
if (current.comments.changes()) {
var comment = current.comments.getJournalEntry(1);
comment = comment.replace(/(\r\n|\n|\r|\\n)/gm, "");
comment = JSON.stringify(comment);
comment = comment.replace(/"/g, "");
comment = comment.replace(/\\/g, "\\\\");
req = req + ',"comments":"' + comment + '"';
}
if (current.assignment_group.changes()) {
if (current.assignment_group == 'e8c3483c1b118510f48c65f7b04bcb0d') { // Ultima support group
req = req + ',"assignment_group":"' + 'd934315d1b4a2300ab0887fe6e4bcbf5' + '"'; // ultima servicedesk 24*7
}
// else {
// req = req + ',"state":"' + '8' + '","close_code":"' + 'Cancelled' + '","close_notes":"' + 'Cancelled as reassigned' + '"'; // resolved with cancel code in IBM
}
if (current.state.changes()) {
if (current.state.changesTo('2')) { // In Progress
req = req + ',"state":"' + '2' + '"';
}
else if (current.state.changesTo('6')) { // resolved
var closeNotes = current.close_notes;
closeNotes = closeNotes.replace(/(\r\n|\n|\r|\\n)/gm, "");
closeNotes = JSON.stringify(closeNotes);
closeNotes = closeNotes.replace(/"/g, "'");
closeNotes = closeNotes.replace(/\\/g, "\\\\");
var close_code = current.close_code;
if (close_code == 'Solved (Work Around)' || close_code == 'Solved (Permanently)' || close_code == 'Solved Remotely (Work Around)' || close_code == 'Solved Remotely (Permanently)') {
close_code = 'Fix Implemented';
} else if (close_code == 'Closed/Resolved by Caller') {
close_code = 'Resolved by user';
} else {
close_code = 'Unable to Identify/Resolve';
}
req = req + ',"state":"' + '6' + '","close_code":"' + close_code + '","close_notes":"' + closeNotes + '"';
} else if (current.state.changesTo('7')) { // closed
req = req + ',"state":"' + '7' + '"';
} else if (current.state.changesTo('8')) { // cancelled
req = req + ',"state":"' + '8' + '"';
} else if (current.state.changesTo('13')) { //reopened
req = req + ',"state":"' + '2' + '","work_notes":"' + 'Reopened' + '"';
} else {
gs.log(current.state + " state update is not in scope", 'ultimaINCUpdate');
}
}
req = req + '}';
gs.log("Update req body " + req, 'ultimaINCUpdate');
rUpdate.setStringParameterNoEscape('request', req);
var updateResponse = rUpdate.execute();
var updateResponseBody = updateResponse.getBody();
var updateHttpStatus = updateResponse.getStatusCode();
//var updateparsedData = JSON.parse(updateResponseBody);
gs.log('getting error ' + '' + updateResponse.getErrorMessage());
gs.log(" Ultima Incident update response : " + updateResponseBody, 'ultimaINCUpdate');
gs.log('update response ' + '' + updateResponseBody);
gs.log('update status ' + '' + updateHttpStatus);
} catch (ex) {
var message = ex.message;
}
}
})(current, previous);