What is the meaning of StatusCode 500 in integration

VIKAS MISHRA
Tera Contributor

I have done one servicenow to servicenow integration.

When i am updating the worknote in my side instance then it should send those to another instase but i checked getting update status code as 500, please suggest why ib am getting that.

 

Below is my script.

(function executeRule(current, previous /*null when async*/ ) {
    if (current.u_external_ticket_no == '') {
        try {
            var rInsert = new sn_ws.RESTMessageV2('Ultima', 'Create Incident');

            //override authentication profile 
            //authentication type ='basic'/ 'oauth2'
            //r.setAuthenticationProfile(authentication type, profile name);

            //set a MID server name if one wants to run the message on MID
            //r.setMIDServer('MY_MID_SERVER');

            //if the message is configured to communicate through ECC queue, either
            //by setting a MID server or calling executeAsync, one needs to set skip_sensor
            //to true. Otherwise, one may get an intermittent error that the response body is null
            //r.setEccParameter('skip_sensor', true);
            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(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');

            //override authentication profile 
            //authentication type ='basic'/ 'oauth2'
            //r.setAuthenticationProfile(authentication type, profile name);

            //set a MID server name if one wants to run the message on MID
            //r.setMIDServer('MY_MID_SERVER');

            //if the message is configured to communicate through ECC queue, either
            //by setting a MID server or calling executeAsync, one needs to set skip_sensor
            //to true. Otherwise, one may get an intermittent error that the response body is null
            //r.setEccParameter('skip_sensor', true);
            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('10')) { //Awaiting User Information
//                     req = req + ',"state":"' + '3' + '","on_hold_reason":"' + '1' + '"';
//                 } else if (current.state.changesTo('11')) { //Awaiting Vendor Information
//                     req = req + ',"state":"' + '3' + '","on_hold_reason":"' + '4' + '"';
//                 } else if (current.state.changesTo('12')) { //Change implementation in-progress
//                     req = req + ',"state":"' + '3' + '","on_hold_reason":"' + '5' + '"';
//                 } 
				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();
            gs.log(" Ultima Incident update response : " + updateResponseBody, 'ultimaINCUpdate');
			
			
		} catch (ex) {
            var message = ex.message;
        }
    }

})(current, previous);
11 REPLIES 11

After removing the wingle it it did not work at all, so fir now i made some changes there but now getting error 404, not sure now if 3rd party needs to check somthing from there end or not

AliceME
Tera Contributor
  1. Check the integration configuration: Verify that you have correctly configured the integration between your two ServiceNow instances. Make sure you have provided the correct endpoint URL, authentication credentials, and any required headers or parameters.

  2. Review the server-side code: Double-check the code on the receiving instance (the instance you are sending the work note to). Ensure that the REST API endpoint you are calling exists and is properly implemented. Look for any potential errors or exceptions in the code that could be causing the server error.

  3. Examine the error response: When you receive a status code 500, the server should provide an error response with more details about the issue. Inspect the response body or logs to see if there are any specific error messages or stack traces that can help identify the problem. It's possible that the error lies in the server-side implementation, and the error message can provide valuable insights.