I am unable to send the attached through REST message.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎06-27-2023 03:12 AM
We have one REST message integration already setup with 3rd party servicenow, but when i am attachinhg one attachment to my SC task then it should triggere that attachmentto 3rd patry sc task but gettoing error "SCTASK0022969 ResponseStatus 500" and "SCTASK0022969 ResponseBody {"error":{"message":"com.glide.rest.util.RESTRuntimeException: The payload is not valid JSON.","detail":""},"status":"failure"}".
Not sure what is wrong here, please suggest .
Below is the BR using for the same .
(function executeRule(current, previous /*null when async*/ ) {
//INCIDENT ATTACHMENT
if (current.table_name == 'incident') {
var inc = new GlideRecord('incident');
inc.addQuery('sys_id', current.table_sys_id);
inc.addQuery('u_external_ticket_no', '!=', '');
inc.query();
if (inc.next()) {
if (current.size_bytes <= 5000000) { // check attachment size < 5MB
//Convert attachment into base64 format
var incsa = new GlideSysAttachment();
var incbinData = incsa.getBytes(current);
var incbase64Data = GlideStringUtil.base64Encode(incbinData);
//Send Attachments
var increquestAttachment = new sn_ws.RESTMessageV2('Ultima', 'addAttachment');
increquestAttachment.setStringParameterNoEscape('filename', current.file_name);
increquestAttachment.setStringParameterNoEscape('contenttype', current.content_type);
increquestAttachment.setStringParameterNoEscape('number', inc.u_external_ticket_no);
increquestAttachment.setStringParameterNoEscape('b64content', incbase64Data);
var incresponse = increquestAttachment.execute();
gs.log(inc.number + " RequestBody " + increquestAttachment.getRequestBody(), 'ultimaINCAttach');
var incresponseBody = incresponse.getBody();
gs.log(inc.number + " ResponseBody " + incresponseBody, 'ultimaINCAttach');
var inchttpStatus = response.getStatusCode();
gs.log(inc.number + " ResponseStatus " + inchttpStatus, 'ultimaINCAttach');
} else {
gs.log("Incident: " + inc.number + " File Name: " + current.file_name + " Size: " + current.size_bytes + " - Attachment size is more than 5 MB.", 'ultimaINCAttach');
}
}
}
//INCIDENT TASK ATTACHMENT
if (current.table_name == 'incident_task') {
var incTask = new GlideRecord('incident_task');
incTask.addQuery('sys_id', current.table_sys_id);
incTask.addQuery('u_external_ticket_no', '!=', '');
incTask.query();
if (incTask.next()) {
if (current.size_bytes <= 5000000) { // check attachment size < 5MB
//Convert attachment into base64 format
var inctsksa = new GlideSysAttachment();
var inctskbinData = inctsksa.getBytes(current);
var inctskbase64Data = GlideStringUtil.base64Encode(inctskbinData);
//Send Attachments
var inctskrequestAttachment = new sn_ws.RESTMessageV2('Ultima', 'addAttachment');
inctskrequestAttachment.setStringParameterNoEscape('filename', current.getValue('file_name'));
inctskrequestAttachment.setStringParameterNoEscape('contenttype', current.content_type);
inctskrequestAttachment.setStringParameterNoEscape('number', incTask.u_external_ticket_no);
inctskrequestAttachment.setStringParameterNoEscape('b64content', inctskbase64Data);
var inctskresponse = inctskrequestAttachment.execute();
gs.log(incTask.number + " RequestBody " + inctskrequestAttachment.getRequestBody(), 'ultimaINCTaskAttach');
var inctskresponseBody = inctskresponse.getBody();
gs.log(incTask.number + " ResponseBody " + inctskresponseBody, 'ultimaINCTaskAttach');
var inctaskhttpStatus = inctskresponse.getStatusCode();
gs.log(incTask.number + " ResponseStatus " + inctaskhttpStatus, 'ultimaINCTaskAttach');
} else {
gs.log("Incident Task: " + incTask.number + " File Name: " + current.file_name + " Size: " + current.size_bytes + " - Attachment size is more than 5 MB.", 'ultimaINCTaskAttach');
}
}
}
//SC TASK ATTACHMENT
if (current.table_name == 'sc_task') {
var SRTask = new GlideRecord('sc_task');
SRTask.addQuery('sys_id', current.table_sys_id);
SRTask.addQuery('u_external_ticket_number', '!=', '');
SRTask.query();
if (SRTask.next()) {
if (current.size_bytes <= 5000000) { // check attachment size < 5MB
//Convert attachment into base64 format
var srtsksa = new GlideSysAttachment();
var srtskbinData = srtsksa.getBytes(current);
var srtskbase64Data = GlideStringUtil.base64Encode(srtskbinData);
// var jsonBody = {};
//Send Attachments
var srtaskAttachment = new sn_ws.RESTMessageV2('Ultima Request', 'addAttachment');
// jsonBody.filename = current.getValue('file_name');
// jsonBody.contenttype = current.getValue('content_type');
// jsonBody.ticket_number = SRTask.getValue('number');
// jsonBody.b64content = srtskbase64Data;
srtaskAttachment.setStringParameterNoEscape('filename', current.file_name);
srtaskAttachment.setStringParameterNoEscape('contenttype', current.content_type);
srtaskAttachment.setStringParameterNoEscape('number', SRTask.u_external_ticket_number);
srtaskAttachment.setStringParameterNoEscape('b64content', srtskbase64Data);
srtaskAttachment.setRequestBodyFromAttachment(current.sys_id);
//srtaskAttachment.setRequestBody(jsonBody);
var srtaskresponse = srtaskAttachment.execute();
// gs.log(SRTask.number + " RequestBody " + srtaskresponse, 'ultimaSRTaskAttach');
var srtaskresponseBody = srtaskresponse.getBody();
gs.log(SRTask.number + " ResponseBody " + srtaskresponseBody, 'ultimaSRTaskAttach');
var srtaskhttpStatus = srtaskresponse.getStatusCode();
gs.log(SRTask.number + " ResponseStatus " + srtaskhttpStatus, 'ultimaSRTaskAttach');
} else {
gs.log("SR Task: " + SRTask.number + " File Name: " + current.file_name + " Size: " + current.size_bytes + " - Attachment size is more than 5 MB.", 'ultimaSRTaskAttach');
}
}
}
})(current, previous);
Below is the HTTP method of rest message.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎06-27-2023 03:59 AM
similar question was asked sometime ago by another member
Unable to add attachment via api
Is it the same case with you?
Ankur
✨ Certified Technical Architect || ✨ 9x ServiceNow MVP || ✨ ServiceNow Community Leader
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎06-27-2023 04:02 AM
you want to transfer files between instances right?
if yes then check these links
Unable to send attachment via REST
Business rule to send attachment to 3rd Party Tool via REST
Send attachment via rest message
If my response helped please mark it correct and close the thread so that it benefits future readers.
Ankur
✨ Certified Technical Architect || ✨ 9x ServiceNow MVP || ✨ ServiceNow Community Leader
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎01-23-2025 11:32 PM
Hope you are doing good.
Did my reply answer your question?
If my response helped please mark it correct and close the thread so that it benefits future readers.
Ankur
✨ Certified Technical Architect || ✨ 9x ServiceNow MVP || ✨ ServiceNow Community Leader