How to send attachment from one instance to other instance using rest api in servicenow?

sangitakumari
Tera Contributor

 Hi ,

I have written the code but not moving attachment from one instance to other instance.

I have used Rest api 

 

sangitakumari_0-1670652008959.png

 

 

sangitakumari_2-1670652599701.pngsangitakumari_3-1670652658735.png

 

i have written code but not moving from one instance to other instance ,kindly provide me is it correct if not correct then provide step by step .

(function executeRule(current, previous /*null when async*/ ) {
try {

var incObj = {};
incObj.caller_id = current.caller_id.toString();
incObj.state = current.state.toString();
incObj.short_description = current.short_description.toString();
incObj.correlation_id = current.sys_id.toString();
incObj.work_notes = current.work_notes.getJournalEntry(-1);
incObj.attachment = b64attachment;
incObj.file_name = attachment.getValue('file_name');
incObj.comments = current.comments.getJournalEntry(-1);


//var tosend = JSON.stringify(body);

var attachment = new GlideRecord('sys_attachment');
attachment.addQuery('table_name', 'incident');
attachment.addQuery('table_sys_id', current.sys_id);
attachment.query();
var b64attachment = '';

if (attachment()) {
var attchmentIS = new GlideSysAttachmentInputStream(attachment.sys_id);
var bytearrayOS = new Packages.java.io.ByteArrayOutputStream();

//write byte stream*/
attachmentIS.writeTo(bytearrayOS);

/*encode attachment file*/

b64attachment = GlideBase64.encode(bytearrayOS.toByteArray());

/*ebond the ticket*/

var r = new sn_ws.RESTMessageV2('Create in dev2 instance', 'attachment');

r.setRequestBody(JSON.stringify(incObj)); // sending the data to the REST message.

 

var response = r.execute();
var responseBody = response.getBody();
var httpStatus = response.getStatusCode();

var crid = JSON.parse(responseBody);
current.correlation_id = crid.result.sys_id.toString();

gs.log("request body:" + responseBody);


}
} catch (ex) {
var message = ex.message;
}

})(current, previous);

23 REPLIES 23

@sangitakumari Please send the screenshots of the code and the error message you are getting

Please mark the answer as correct or helpful based on impact
ServiceNow Community Rising Star, Class of 2023

Hi , I have shared code and rest api of screenshot kindly check it once where i am wrong.

 

attachment rest api1 .pngattachment rest ap1.pngattachment rest api test.pngBR of attachment condition.pngBR of attachment code.pngBR of attachment code1.pngBR of attachmentt code 2.png

@sangitakumari You need to pass table_name, table_sys_id and file_name in the request body. Are you doing that?

Please mark the answer as correct or helpful based on impact
ServiceNow Community Rising Star, Class of 2023

yes, check it in screenshot once which i shared once again.

BR of attachment condition.pngBR of attachment code.pngBR of attachment code1.pngBR of attachmentt code 2.png

@sangitakumari Please check line no. 10 and 11 of business rule. b64attachment and attachment variables are not defined.

 

And if we are passing the attachement using setRequestBodyFromAttachment (line no. 51) we can remove line 10 and 11.

 

So please comment line number 10 and 11 and try.

 

Please mark as correct answer if this solves your issue.

Please mark the answer as correct or helpful based on impact
ServiceNow Community Rising Star, Class of 2023