send attachement through rest message to different instance.
Options
- 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
11 REPLIES 11
Options
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎07-23-2025 01:47 AM
Hi @pradippaul ,
Did you try changing the URL?
Please mark my answer as helpful/correct if it resolves your query.
Regards,
Chaitanya
Options
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎07-23-2025 01:48 AM