17. getBytes Function
Did you know getBytes function in attachment script has some size limits?
getBytes function is used in attachments scripts to get base64 data. This function has a payload limit of 4MB which means attachments larger than 4MB cannot be transferred. Below scripts can be used as an alternative.
Script where getBytes function is used:
var sa = new GlideSysAttachment();
var binData = sa.getBytes(attachmentRecordObject);
var base64 = GlideStringUtil().base64Encode(binData); // Limit of 4MB
Alternative — Calling script from non-global scope:
var sa = new GlideSysAttachment();
sa.getContent(attachmentRecordObject);
var base64 = sa.getContentBase64(attachmentRecordObject);
Alternative — Calling script from global scope:
var gsa = GlideSysAttachmentInputStream(AttachmentRecordObject.sys_id.toString());
var baos = new Packages.java.io.ByteArrayOutputStream();
gsa.writeTo(baos);
baos.close();
var base64 = GlideStringUtil.base64Encode(baos.toByteArray());
https://medium.com/@LearnITbyPrashant/17-getbytes-function-73579e5bd487?source=rss-d005fc598f0a------2