How to download Attachments from RITM through Scripted REST API
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎03-26-2019 08:32 AM
I need to create a Scripted REST API which shall accept the RITM numbers and return the attachments associated with the given RITM.
This is my Sample Code:
------------------------------------------------------------------------------------------------------------------------------------------------------
var queryParams = request.queryParams;
var queryRITM = queryParams.RITM;
//queryRITM = queryRITM.split(',');
var gr = new GlideRecord('sc_req_item');
gr.addQuery('number',queryRITM);
gr.query();
while (gr.next()){
var ga = new GlideRecord('sys_attachment');
ga.addQuery('table_sys_id',gr.sys_id.toString());
ga.query();
while(ga.next()){
var hdrs = {},
attachment_sys_id = ga.sys_id;
response.setStatus(200);
response.setHeaders(hdrs);
var attachmentStream = new GlideSysAttachmentInputStream(attachment_sys_id);
writer.writeStream(attachmentStream);
}
}
})(request, response);
- Labels:
-
Integrations
-
Scripting and Coding
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎04-11-2019 12:41 AM
Hi Abhinav,
Any update on this?
Can you mark my answer as correct, helpful if you were able to achieve the requirement. This helps in removing this question from unanswered list and helps users to learn from your thread. Thanks in advance.
Regards
Ankur
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-01-2019 12:36 AM
Hi Abhinav,
Can you also mark the answer as correct if it helped. This helps in closing the question.
Regards
Ankur
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-09-2019 11:23 PM
Hi Abhinav,
Any update on this?
Can you mark my answer as correct, helpful if you were able to achieve the requirement. This helps in removing this question from unanswered list and helps users to learn from your thread. Thanks in advance.
Regards
Ankur
Ankur
✨ Certified Technical Architect || ✨ 9x ServiceNow MVP || ✨ ServiceNow Community Leader
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎08-19-2020 03:18 AM
hi ankur ,
i am trying the same for downloading attachment for a particular table or ritm . Kindly for dowloading code
(function process(/*RESTAPIRequest*/ request, /*RESTAPIResponse*/ response) {
var queryParams = request.queryParams;
var queryRITM = queryParams.number;
var gr = new GlideRecord('sc_req_item');
gr.addQuery('number',queryRITM);
gr.query();
while (gr.next()){
var ga = new GlideRecord('sys_attachment');
ga.addQuery('table_sys_id',gr.sys_id.toString());
ga.query();
while(ga.next()){
// var hdrs = {},
// attachment_sys_id = ga.sys_id;
//hdrs['Content-Type'] = "'"+ ga.content_type+ "'";
// response.setStatus(200);
//response.setHeaders(hdrs);
var writer = response.getStreamWriter();
var StringUtil = new GlideStringUtil();
var gsa = GlideSysAttachmentInputStream(ga.sys_id.toString());
var baos = new Packages.java.io.ByteArrayOutputStream();
gsa.writeTo(baos);
var baos = new Packages.java.io.ByteArrayOutputStream();
var base64EncodedData = StringUtil.base64Encode(baos.toByteArray());
writer.writeStream(base64EncodedData);
//var attachmentStream = new GlideSysAttachmentInputStream(attachment_sys_id);
// writer.writeStream(attachmentStream);
}
}
})(request, response);
please guide me if any mistake is there. i am doing it in scripted rest api . giving error
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎08-19-2020 02:56 AM
hi ankur ,
i am trying the same for downloading and attachment for a particular table or ritm
(function process(/*RESTAPIRequest*/ request, /*RESTAPIResponse*/ response) {
var queryParams = request.queryParams;
var queryRITM = queryParams.number;
var gr = new GlideRecord('sc_req_item');
gr.addQuery('number',queryRITM);
gr.query();
while (gr.next()){
var ga = new GlideRecord('sys_attachment');
ga.addQuery('table_sys_id',gr.sys_id.toString());
ga.query();
while(ga.next()){
// var hdrs = {},
// attachment_sys_id = ga.sys_id;
//hdrs['Content-Type'] = "'"+ ga.content_type+ "'";
// response.setStatus(200);
//response.setHeaders(hdrs);
var writer = response.getStreamWriter();
var StringUtil = new GlideStringUtil();
var gsa = GlideSysAttachmentInputStream(ga.sys_id.toString());
var baos = new Packages.java.io.ByteArrayOutputStream();
gsa.writeTo(baos);
var baos = new Packages.java.io.ByteArrayOutputStream();
var base64EncodedData = StringUtil.base64Encode(baos.toByteArray());
writer.writeStream(base64EncodedData);
//var attachmentStream = new GlideSysAttachmentInputStream(attachment_sys_id);
// writer.writeStream(attachmentStream);
}
}
})(request, response);
please guide me if any mistake is there. i am doing it in scripted rest api . giving error