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

prashantpandey
Tera Contributor

Hi Vikas,

Status code 500 usually returned if there is an error while executing the scripts on target system. I would suggest that you apply some logs in your code, it will help you identify the faulty code. You can use updateResponse.getErrorMessage() to get the exact error message.

 

Please mark correct if this helps you.

 

Regards,

Prashant

As suggested by you i put one log there to check the error and i got the below mentioned error.

Method failed: (/api/x_ulbs_costa_snow/incident) with code: 500

I have 2 API in the rest message one is "create incident" and another one is "update incident", create one is already working fine with the same URL then why update one is showing this error of the url that i am using

prashantpandey
Tera Contributor

Hi Vikas,

You need to check the Scripted Rest API which you would have created on the target instance. The error is at /api/x_ulbs_costa_snow/incident Scripted Rest API. Please add logs there to debug the issue. you can use Rest API explorer to trigger some tests on the target instance.

 

Regards,

Prashant

Are you sure that it is the issue with there URL and from there side only, and i need to check nothing from my side