send attachement through rest message to different instance.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎07-22-2025 11:17 PM
Hi All,
I am using ServiceNow rest message to copy incident record and attachment to a different instance. but the attachment not copying to target instance.
(function executeRule(current, previous /*null when async*/ ) {
try {
gs.log("1.0 " +current.sys_id);
var targetinstance = "https://dev211559.service-now.com/api/now/attachment";
var user = "userid";
var password = "password";
var text = '';
var r = new sn_ws.RESTMessageV2('ServiceNow e bonding', 'create an incident');
r.setStringParameterNoEscape("details", current.short_description);
r.setStringParameterNoEscape("caller", current.caller_id);
r.setStringParameterNoEscape("id", current.sys_id);
r.setStringParameterNoEscape("category", current.category);
r.setStringParameterNoEscape("number", current.number);
r.setStringParameterNoEscape("description", current.description);
r.setStringParameterNoEscape("assignment_group", current.assignment_group);
r.setStringParameterNoEscape("impact", current.impact);
r.setStringParameterNoEscape("urgency", current.urgency);
r.setStringParameterNoEscape("subcategory", current.subcategory);
var response = r.execute();
var responseBody = response.getBody();
gs.log(" 1.1 Fianl test integration response" + responseBody);
var parsedata = JSON.parse(responseBody);
var inctargetnum = parsedata.result.number;
current.correlation_id = inctargetnum;
//current.update();
var httpStatus = response.getStatusCode();
gs.log("2.0 get httpstatus value " + httpStatus);
if (httpStatus.toString() == "201") {
gs.log("2.1 check httpstatus conditon " + httpStatus);
text = "incident created";
var parser = new JSONParse();
var parsed = new parser.parse(responseBody);
var tragetrec = parsed.sys_id;
var attachmentcount = sendAttachements(current.getTableName(), current.sys_id, tragetrec);
// gs.log("3. print table name " + current.table_name);
}
} catch (ex) {
var message = ex.message;
}
function sendAttachements(sourcetable, sourceid, targetid) {
gs.log("4. attachment function call " + sourcetable + " " + sourceid + " " + targetid);
gs.sleep(2000);
var gr = new GlideRecord('sys_attachment');
gs.log("4.1 Querying attachments for table: " + sourcetable + ", sys_id: " + sourceid);
gr.addQuery('table_sys_id', sourceid);
gr.addQuery('table_name', sourcetable);
gr.query();
var count = 0;
while (gr.next()) {
count++;
gs.log("6. Attachment file name: " + gr.file_name);
gs.log("7. Attachment sys_id: " + gr.sys_id);
var ar = new sn_ws.RESTMessageV2();
ar.setHttpMethod("POST");
ar.setEndpoint(targetinstance);
ar.setBasicAuth(user, password);
ar.setRequestHeader("Accept", "application/json");
ar.setQueryParameter("table_name", "incident");
ar.setQueryParameter("table_sys_id", targetid);
ar.setQueryParameter("file_name", gr.file_name);
ar.setRequestBodyFromAttachment(gr.sys_id);
var respon = ar.execute();
gs.log("9. Attachment upload status: " + respon.getStatusCode());
gs.log("10. Attachment upload error: " + respon.getErrorMessage());
gs.log("11. Attachment upload response: " + respon.getBody());
}
gs.log("5. Attachment record count: " + count);
}
})(current, previous);
"sendAttachements" function not working .
Please let me know where I am making the mistake.
Thanks
Pradip
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎07-22-2025 11:21 PM
you want to transfer files between instances right?
if yes then check these links and it has working solution, please enhance for your requirement
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
‎07-23-2025 12:24 AM
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎07-23-2025 01:01 AM
201
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎07-23-2025 01:45 AM - edited ‎07-23-2025 01:47 AM
Can you use below URL as endpoint and verify again: It worked for me
https://dev211559.service-now.com/api/now/attachment/file
If I could help you with your Query then, please hit the Thumb Icon and mark as Correct !!
Thanks, GP