How to send the state "resolved" along with resolution note and resolution code to 3rd party
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
05-30-2024 11:06 PM
I have a bi directional integration between my ServiceNow and 3rd party ServiceNow for incident record.
As per the requirement when if we resolve incident at my side then it should send the payload to containing the state , resolution note and resolution code to 3rd party in JASON format so that they can resolve the incident at their end too.
However My whole code is working except this one only where i am trying to send these 3 values to 3rd party.
I Below is my code of BR, please suggest what change i should so that it can send the information in correct format.
(function executeRule(current, previous /*null when async*/ ) {
if (current.u_external_ticket_no == '') {
try {
var rInsert = new sn_ws.RESTMessageV2('Ultima', 'Create Incident');
var descbody = new TranslateTexttoen().translate(current.description);//current.description; // added by Translation team to convert non english text to english
descbody = descbody.replace(/(\r\n|\n|\r|\\n)/gm, "");
descbody = JSON.stringify(descbody);
descbody = descbody.replace(/"/g, "'");
descbody = descbody.replace(/\\/g, "\\\\");
var shortDesc = new TranslateTexttoen().translate(current.short_description);//current.short_description; // added by Translation team to convert non english text to english
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(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 {
try {
var rUpdate = new sn_ws.RESTMessageV2('Ultima', 'Update Incident');
var req = {};
req.u_customer_reference = current.number.toString();
if (current.impact.changes()){
req.impact = current.impact.toString();
}
if (current.urgency.changes())
req.urgency = current.urgency.toString();
if (current.work_notes.changes()) {
var worknotes1 = new TranslateTexttoen().translatewn('incident', current.sys_id,'work_notes'); // added by Translation team to convert non english text to english
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 + '"';
req.work_notes = worknotes1;
}
if (current.comments.changes()) {
var comment = current.comments.getJournalEntry(1);
var comment1 = new TranslateTexttoen().translatewn('incident', current.sys_id,'comments'); // added by Translation team to convert non english text to english
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 + '"';
req.comments = comment1;
}
if (current.assignment_group.changes()) {
if (current.assignment_group == 'e8c3483c1b118510f48c65f7b04bcb0d') { // Ultima support group
//req = req + ',"assignment_group":"' + 'd934315d1b4a2300ab0887fe6e4bcbf5' + '"'; // ultima servicedesk 24*7 req.asign = sysid
req.assignment_group = 'd934315d1b4a2300ab0887fe6e4bcbf5';
}
// 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.state = current.state.toString();
}
else if (current.state.changesTo('6')) { // resolved
//req.state = current.state.toString();
//req += "Incident is Resolved at Costa End with Resolution Code - " + current.close_code + "and Resolution Note - " + current.close_notes + "state - " + current.state.toString() ;
req.state = "close_code " + ": " + current.close_code + "," + "close_notes " + ": " + current.close_notes + "," + " state " + ": " + current.state.toString();
//req = req + ',"state":"' + '6' + '","close_code":"' + close_code + '","close_notes":"' + closeNotes + '"';
//req.state = ',"state":"' + '6' + '","close_code":"' + close_code + '","close_notes":"' + closeNotes + '"';
gs.log('Testing by vikas mishra' + req.state);
} else if (current.state.changesTo('7')) { // closed
req.state = '7';
} else if (current.state.changesTo('8')) { // cancelled
req.state = '8';
} else if (current.state.changesTo('13')) { //reopened
req = req + ',"state":"' + '2' + '","work_notes":"' + 'Reopened' + '"';
gs.log("reopened" + req);
} else {
gs.log(current.state + " state update is not in scope", 'ultimaINCUpdate');
}
}
gs.log("Update req body " + JSON.stringify(req), 'ultimaINCUpdate');
rUpdate.setRequestBody(JSON.stringify(req));
var updateResponse = rUpdate.execute();
var updateResponseBody = updateResponse.getBody();
var updateHttpStatus = updateResponse.getStatusCode();
gs.log('testing req ' + '' + req);
gs.log('testing updateResponseBody ' + '' + updateResponseBody);
gs.log('testing updateHttpStatus ' + '' + updateHttpStatus);
gs.log(" Ultima Incident update response : " + updateResponseBody, 'ultimaINCUpdate');
} catch (ex) {
message = ex.message;
}
}
})(current, previous);

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
05-30-2024 11:40 PM
What issue are you facing when sending these 3 fields? I don't see the mentioned fields in your BR.
Have you considered moving to Flow Designer for this requirement?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
05-30-2024 11:49 PM
We are using rest message to send these fields value,
above mentioned script is the BR which is capturing the fields value once the records gets updated.
In the script you can see the code "
else if (current.state.changesTo('6')) {
Whithin this code i need to write somthing so that it sends all 3 fields value to 3rd partty in jason format

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
05-31-2024 12:46 AM
I'm assuming you've inherited this script, and aren't the original creator?
Based on the existing code, you'd specify state as a query parameter
rInsert.setStringParameterNoEscape('state', 1); //Existing
or
req['state'] = current.getValue('state');
req['resolution_notes'] = current.getValue('resolution_notes');
req['close_code'] = current.getValue('close_code')