- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
03-22-2017 01:47 AM
Hi Team,
Could you please suggest me how can I download the attachment from multiple Incidents as a zip file. I have written the code, its not downloading all incident attachments. Only few attachments are downloading. I have created afield "attachments", then I have used that field name in this code.
Code:
Processors:
(function process(g_request, g_response, g_processor) {
var sysidList = g_request.getParameter('sysparm_sys_id');
var table = g_request.getParameter('sysparm_table');
var sysIDarray;
var theRecord = new GlideRecord(table);
theRecord.addQuery('u_attachments', 'true');
theRecord.query();
while(theRecord.next()){
if(sysIDarray==''){
sysIDarray=theRecord.sys_id;
}
else
{sysIDarray = sysIDarray +','+ theRecord.sys_id;}
//sysIDarray = sysIDarray +','+ theRecord.sys_id;
}
var querystring = "table_sys_idIN"+sysIDarray;
var zipName = 'attachments.zip';
var StringUtil = GlideStringUtil;
var gr = new GlideRecord('sys_attachment');
gr.addEncodedQuery(querystring);
gr.query();
if (gr.hasNext()){
g_response.setHeader('Pragma', 'public');
g_response.addHeader('Cache-Control', 'no-cache');
g_response.setContentType('application/octet-stream');
g_response.addHeader('Content-Disposition', 'attachment;filename=' + zipName);
var out = new Packages.java.util.zip.ZipOutputStream(g_response.getOutputStream());
var count=0;
while (gr.next()){
var sa = new GlideSysAttachment();
var binData = sa.getBytes(gr);
var file = gr.file_name;
addBytesToZip(out, zipName, file, binData);
count ++;
}
// Complete the ZIP file
out.close();
}
function addBytesToZip (out, dir, file, stream){
// Add ZIP entry to output stream.
out.putNextEntry(new Packages.java.util.zip.ZipEntry(file));
out.write(stream, 0, stream.length);
out.closeEntry();
}
})(g_request, g_response, g_processor);
Please help me in this issue as well.
Regards,
Saridha.L
Solved! Go to Solution.

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
03-24-2017 07:43 AM
I have found this blog post's code to work up to Helsinki: https://www.servicenowguru.com/scripting/download-attachments-zip-file/
There are many uses for it. I use it to demonstrate Edge encryption, as this code bypasses the encryption proxy and will download the encrypted files.
JarodM
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
04-02-2017 10:03 PM
Saridha,
Also you have set the value of that field to true in all the incidents for which you want to download attachments, correct?
I have tested this and was working fine. Probably you need to go over the script and see if you missed some steps.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
04-03-2017 12:02 AM
Hi Harneet,
Yes I have set the value of that field to true in all the incidents for which I want to download attachments ,still its not working. Its downloading only one Incident attachment. Could you please help me.
Regards,
Saridha.L.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
10-14-2019 10:39 PM
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
01-22-2021 09:38 AM
not worked for me
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
01-22-2021 09:42 AM
Thanks it worked now