writeBase64 function of GlideSysAttachment class doesn't work

yewu
Kilo Contributor

Try to use writeBase64 function of GlideSysAttachment class to save a binary file (base64 string) as an attachment of an sc_req_item record.

I tried the following:

var base64String = "...."

var attachement = new GlideSysAttachment();

var gr = new GlideRecord("sc_req_item");

// find the corresponding record

var attachment_sys_id = attachement.writeBase64(gr, "test.pdf", "application/pdf", base64String );

gs.log("system attchment id:" + attachment_sys_id);

attachment_sys_id is "undefined" and no attachment was created and attached.

However, if I change writeBase64 to write, an attachment was created and attached, attachment sys id was returned, but the attachment was not the correct format.

Any idea?

9 REPLIES 9

yewu
Kilo Contributor

Attached please find the test script.



No error in system log, no new record in sys_attachment_docs table.


yewu
Kilo Contributor

Got inspiration from this post: Why is GlideSysAttachment.getContentBase64() documented, but not defined?


Why is GlideSysAttachment.getContentBase64() documented, but not defined?



writeBase64 only works in scoped application, doesn't work for global scope. Put it in a custom app, it worked!


vab_13
ServiceNow Employee
ServiceNow Employee

Thanks Ye Wu


We will test and evaluate the documentation on this one.




shiven
Tera Contributor

Hello Yewu,

Does any other format apart from text/plain works for you in scoped ?

Alex Bells
Tera Contributor

Hi, 

I use this:

var DecodedBytes = GlideStringUtil.base64DecodeAsBytes(myBase64);

var attach = new GlideSysAttachment();

attach.write(inc, 'my_file.xls', 'application/vnd.ms-excel', DecodedBytes );

 

 

 

As Example:

var myBase64= "0M8R4KGxGuEAAAAAAAAAAAAAAAAAAAAAOwADAP7/CQAGAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAEAAAAgAAAAEAAAD+////AAAAAAEAAAD///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////9SAG8AbwB0ACAARQBuAHQAcgB5AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFgAFAf//////////AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAACwAAAAAAAFcAbwByAGsAYgBvAG8AawAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASAAIB////////////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP4KAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP7////9/////v///wQAAAAFAAAABgAAAAcAAAAIAAAA/v//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////AQAAAAIAAAADAAAABAAAAAUAAAAGAAAABwAAAAgAAAAJAAAACgAAAAsAAAAMAAAADQAAAA4AAAAPAAAAEAAAABEAAAASAAAAEwAAABQAAAAVAAAAFgAAABcAAAAYAAAAGQAAABoAAAAbAAAAHAAAAB0AAAAeAAAAHwAAACAAAAAhAAAAIgAAACMAAAAkAAAAJQAAACYAAAAnAAAAKAAAACkAAAAqAAAAKwAAAP7///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8JCBAAAAYFANMQzAdBAAAABgAAAOEAAgCwBMEAAgAAAOIAAABcAHAACgAAc2VydmljZW5vdyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEIAAgCwBGEBAgAAAD0BAgAAAJwAAgAOABkAAgAAABIAAgAAABMAAgAAAK8BAgAAALwBAgAAAD0AEgBoAQ4BXDq+IzgAAAAAAAEAWAJAAAIAAACNAAIAAAAiAAIAAAAOAAIAAQC3AQIAAADaAAIAAAAxABUAyAAAAP9/kAEAAAAAAAAFAEFyaWFsMQAVAMgAAAD/f5ABAAAAAAAABQBBcmlhbDEAFQDIAAAA/3+QAQAAAAAAAAUAQXJpYWwxABUAyAAAAP9/kAEAAAAAAAAFAEFyaWFsMQAVAMgAAAD/f7wCAAAAAAAABQBBcmlhbDEAFQDIAAAA/3+8AgAAAAAAAAUAQXJpYWweBBoABQAVAAAiJCIjLCMjMF8pOygiJCIjLCMjMCkeBB8ABgAaAAAiJCIjLCMjMF8pO1tSZWRdKCIkIiMsIyMwKR4EIAAHABsAACIkIiMsIyMwLjAwXyk7KCIkIiMsIyMwLjAwKR4EJQAIACAAACIkIiMsIyMwLjAwXyk7W1JlZF0oIiQiIywjIzAuMDApHgQsACoAJwAAXygqICMsIyMwXyk7XygqICgjLCMjMCk7XygqICItIl8pO18oQF8pHgQ1ACkAMAAAXygiJCIqICMsIyMwXyk7XygiJCIqICgjLCMjMCk7XygiJCIqICIt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";


var inc = new GlideRecord('incident');
inc.get('403fe6403d51d300cffec8843d5460b3');
gs.print('Object: ' + inc.number);

var DecodedBytes = GlideStringUtil.base64DecodeAsBytes(myBase64);

var attach = new GlideSysAttachment();
try {
attach.write(inc, 'my_file.xls', 'application/vnd.ms-excel', DecodedBytes );
gs.print('Attach id: ' + attach.writeBase64(inc, 'my_file.xls', 'application/vnd.ms-excel', DecodedBytes ));
} catch(e) {
gs.print('No file: ' + e.toString());
}