Get Attachments through REST API

Aruna Sree Yela
Tera Guru

Hi,

 

3rd party tool is calling servicenow to get attachments of RITM in binary stream.

 

I want to achieve this using script include and Scripted REST API. How to achieve this

 

Thanks

1 ACCEPTED SOLUTION

@Aruna Sree Yela 

I am able to get the base64 data using background script in global scope

You can check the script and enhance

I believe if the base64 string is huge then it might not work while setting the response of scripted rest api

var attGr = new GlideRecord('sys_attachment');
  attGr.addQuery('sys_id', 'b45f80356f102100758ecb512e3ee485');
  attGr.query();
  if(attGr.next())
        {
   var gsu = (typeof GlideStringUtil != 'undefined') ? (GlideStringUtil) : (Packages.com.glide.util.StringUtil); //few versions support the first one, other supports second
   var gsa = (typeof GlideSysAttachment != 'undefined') ? (new GlideSysAttachment()) : (new Packages.com.glide.ui.SysAttachment());
   var attachmentData = gsa.getBytes(attGr);
   var attachment = String(Packages.java.lang.String(attachmentData));
   gs.info(attachment); //the data in the file will be printed as String
   var encData = GlideStringUtil.base64Encode(attachmentData); // data of one attachment at a time
   gs.info(encData);
}

Output:

AnkurBawiskar_0-1739272573205.png

 

If my response helped please mark it correct and close the thread so that it benefits future readers.

Regards,
Ankur
Certified Technical Architect  ||  9x ServiceNow MVP  ||  ServiceNow Community Leader

View solution in original post

20 REPLIES 20

@Aruna Sree Yela 

it's a platform limitation

If my response helped please mark it correct and close the thread so that it benefits future readers.

Regards,
Ankur
Certified Technical Architect  ||  9x ServiceNow MVP  ||  ServiceNow Community Leader

@Ankur Bawiskar 

I did noticed attachment API, which is giving meta data of the file.

But how that sends the actual attachment to target?

And is that helpful to get large file also?

@Aruna Sree Yela 

how are you using that API? share some details

Regards,
Ankur
Certified Technical Architect  ||  9x ServiceNow MVP  ||  ServiceNow Community Leader

@Aruna Sree Yela 

you said you got the base64 in log?

But unable to send the base64 as scripted REST API response

share the complete scripted rest api script here?

Regards,
Ankur
Certified Technical Architect  ||  9x ServiceNow MVP  ||  ServiceNow Community Leader

@Aruna Sree Yela 

Thank you for marking my response as helpful.

If my response helped please mark it correct and close the thread so that it benefits future readers.

Regards,
Ankur
Certified Technical Architect  ||  9x ServiceNow MVP  ||  ServiceNow Community Leader