Join the #BuildWithBuildAgent Challenge! Get recognized, earn exclusive swag, and inspire the ServiceNow Community with what you can build using Build Agent.  Join the Challenge.

writeBase64 function of GlideSysAttachment class doesn't work

yewu
Mega 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
Mega Contributor

Attached please find the test script.



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


yewu
Mega 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+8AgAAAAAAAAUAQXJpYWweBBoABQAVAAAiJCIjLCMjMF8pOygiJCIjLCMjMCkeBB8ABgAaAAAiJCIjLCMjMF8pO1tSZWRdKCIkIiMsIyMwKR4EIAAHABsAACIkIiMsIyMwLjAwXyk7KCIkIiMsIyMwLjAwKR4EJQAIACAAACIkIiMsIyMwLjAwXyk7W1JlZF0oIiQiIywjIzAuMDApHgQsACoAJwAAXygqICMsIyMwXyk7XygqICgjLCMjMCk7XygqICItIl8pO18oQF8pHgQ1ACkAMAAAXygiJCIqICMsIyMwXyk7XygiJCIqICgjLCMjMCk7XygiJCIqICItIl8pO18oQF8pHgQ9ACwAOAAAXygiJCIqICMsIyMwLjAwXyk7XygiJCIqICgjLCMjMC4wMCk7XygiJCIqICItIj8/Xyk7XyhAXykeBDQAKwAvAABfKCogIywjIzAuMDBfKTtfKCogKCMsIyMwLjAwKTtfKCogIi0iPz9fKTtfKEBfKR4EGACkABMAAHl5eXktTU0tZGQgSEg6bW06c3MeBA8ApQAKAAB5eXl5LU1NLWRk4AAUAAAAAAD1/yAAAAAAAAAAAAAAAMAg4AAUAAEAAAD1/yAAAPQAAAAAAAAAAMAg4AAUAAEAAAD1/yAAAPQAAAAAAAAAAMAg4AAUAAIAAAD1/yAAAPQAAAAAAAAAAMAg4AAUAAIAAAD1/yAAAPQAAAAAAAAAAMAg4AAUAAAAAAD1/yAAAPQAAAAAAAAAAMAg4AAUAAAAAAD1/yAAAPQAAAAAAAAAAMAg4AAUAAAAAAD1/yAAAPQAAAAAAAAAAMAg4AAUAAAAAAD1/yAAAPQAAAAAAAAAAMAg4AAUAAAAAAD1/yAAAPQAAAAAAAAAAMAg4AAUAAAAAAD1/yAAAPQAAAAAAAAAAMAg4AAUAAAAAAD1/yAAAPQAAAAAAAAAAMAg4AAUAAAAAAD1/yAAAPQAAAAAAAAAAMAg4AAUAAAAAAD1/yAAAPQAAAAAAAAAAMAg4AAUAAAAAAD1/yAAAPQAAAAAAAAAAMAg4AAUAAAAAAABACAAAAAAAAAAAAAAAMAg4AAUAAEAKwD1/yAAAPgAAAAAAAAAAMAg4AAUAAEAKQD1/yAAAPgAAAAAAAAAAMAg4AAUAAEALAD1/yAAAPgAAAAAAAAAAMAg4AAUAAEAKgD1/yAAAPgAAAAAAAAAAMAg4AAUAAEACQD1/yAAAPgAAAAAAAAAAMAg4AAUAAAApAABAAAAAAAAAAgECAQAAMAg4AAUAAAApQABAAAAAAAAAAgECAQAAMAg4AAUAAAABAABAAAAAAAAAAgECAQAAMAg4AAUAAAAAAABAAgAABAAAAgECAQAAMAg4AAUAAUAAAABACAAAAgAAAgECAQAAMAg4AAUAAYAAAABACAAAAgAAAgECAQAAMAgkwIEABCAA/+TAgQAEYAG/5MCBAASgAT/kwIEABOAB/+TAgQAAIAA/5MCBAAUgAX/YAECAAAAhQAOABkIAAAAAAYAUGFnZSAxjAAEAAEAAQCuAQQAAQABBBcACAABAAAAAAAAAPwA0gEaAAAAEAAAAAgAARAEOgRCBDgEMgQ9BEsENQQFAAEdBD4EPAQ1BEAEBwABHgRCBDoEQARLBEIEPgQQAAEaBEAEMARCBDoEPgQ1BCAAPgQ/BDgEQQQwBD0EOAQ1BAcAARAEMQQ+BD0ENQQ9BEIECQABIQQ+BEEEQgQ+BE8EPQQ4BDUEEQABEwRABEMEPwQ/BDAEIAA9BDAENwQ9BDAERwQ1BD0EOARPBAsAARgEQQQ/BD4EOwQ9BDgEQgQ1BDsETAQJAAEeBDEEPQQ+BDIEOwQ1BD0EPgQXAAEaBD4EOwQ4BEcENQRBBEIEMgQ+BCAAPwQ1BEAENQQ+BEIEOgRABEsEQgQ4BDkECgAASU5DMDAxMTA5MDwAAR8EQAQ+BEgEQwQgAEMEQQRCBEAEMAQ9BDgEQgRMBCAAQQQxBD4EOQQgADgEOwQ4BCAAPgRIBDgEMQQ6BEMEIAAyBCAAQAQwBDEEPgRCBDUEIAA6BD4EQAQ/BD4EQAQwBEIEOAQyBD0EPgQ5BCAAPwQ+BEcEQgRLBAcAARAEOwQ1BDoEQQQwBCAACwABGARBBD8EPgQ7BD0ETwQ1BEIEQQRPBAoAASIEHwQgAB4EJgQeBCAAIQQRBB0EAAAA/wASAAgANQYAAAwAAADtBgAAxAAAAAoAAAAJCBAAAAYQALsNzAfBAAAABgAAAAsCFAAAAAAAAAAAAAIAAAAAAAAAtwoAAA0AAgABAAwAAgBkAA8AAgABABEAAgAAABAACAD8qfHSTWJQP18AAgABACoAAgAAACsAAgAAAIIAAgABAIAACAAAAAAAAAAAACUCBAAAAP8AgQACAMEEFAAAABUAAACDAAIAAACEAAIAAAChACIAAQBkAAEAAQABAAIALAEsAQAAAAAAAOA/AAAAAAAA4D8BAFUAAgAIAH0ADAAAAAEAAAoPAAIAAgB9AAwAAgACAAASDwACAAIAfQAMAAMAAwAAEA8AAgACAH0ADAAEAAUAAAoPAAIAAgB9AAwABgAGAAARDwACAAIAfQAMAAcABwAACw8AAgACAH0ADAAIAAgAABIPAAIAAgB9AAwACQAJAAAXDwACAAIAAAIOAAAAAAACAAAAAAAKAAAACAIQAAAAAAAKAP8AAAAAAAABDwAIAhAAAQAAAAoA/wAAAAAAAAEPAP0ACgAAAAAAGgAAAAAA/QAKAAAAAQAaAAEAAAD9AAoAAAACABoAAgAAAP0ACgAAAAMAGgADAAAA/QAKAAAABAAaAAQAAAD9AAoAAAAFABoABQAAAP0ACgAAAAYAGgAGAAAA/QAKAAAABwAaAAcAAAD9AAoAAAAIABoACAAAAP0ACgAAAAkAGgAJAAAABQIIAAEAAAAYAAEA/QAKAAEAAQAYAAoAAAADAg4AAQACABUA0xH7TvcW5UD9AAoAAQADABgACwAAAP0ACgABAAQAGAAMAAAA/QAKAAEABQAYAA0AAAD9AAoAAQAGABgADgAAAP0ACgABAAcAGAAPAAAAAwIOAAEACAAVAAK+efVTHOVAAwIOAAEACQAYAAAAAAAAAAAA1wAIAEoBAAAUAIwAPgISAL4HAAAAAEAAAAAAAAAAAAAAAEEACgAAAAEAAQAAAAIAHQAPAAIAAAAAAAABAAAAAAAAAAoAAAD//wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=";


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());
}