The CreatorCon Call for Content is officially open! Get started here.

The attached PDF is blank

Lom
Tera Contributor

Hello,

can you help with this script below. It works but the pdf file attached is 0k:

 

var pdf_base64 = 'JVBERi0xLjMKJcfsj6IKMSAwIG9iagogPDwvVHlwZSAvUGFnZSAvUGFyZW50IDMgMCBSIC9SZXNvdXJjZXMgMiAwIFIgL0NvbnRlbnRzIDQgMCBSIC9NZWRpYUJveCBbMCAwIDYxMiA3OTJdID4+CmVuZG9iagoyIDAgb2JqIDw8L1Byb2NTZXQgNiAwIFIgL0ZvbnQgPDwvRjEgNSAwIFIgPj4gPj4KZW5kb2JqCjMgMCBvYmogPDwvVHlwZSAvUGFnZXMgL0tpZHMgWzEgMCBSXSAvQ291bnQgMSAvTWVkaWFCb3ggWzAgMCA2MTIgNzkyXSA+PgplbmRvYmoKNCAwIG9iaiA8PC9MZW5ndGggNzggL0ZpbHRlciAvRmxhdGVEZWNvZGUgPj4Kc3RyZWFtCkJUCi9GMSA0OCBUZiAxMCAxMCBUZCAoSGVsbG8sIHdvcmxkLikgVGoKRVQKZW5kc3RyZWFtCmVuZG9iago1IDAgb2JqIDw8L1R5cGUgL0ZvbnQgL1N1YnR5cGUgL1R5cGUxIC9CYXNlRm9udCAvSGVsdmV0aWNhID4+CmVuZG9iago2IDAgb2JqIFsgL1BERiAvVGV4dCBdCmVuZG9iagp4cmVmCjAgNwowMDAwMDAwMDAwIDY1NTM1IGYgCjAwMDAwMDAwMDkgMDAwMDAgbiAKMDAwMDAwMDA2NyAwMDAwMCBuIAowMDAwMDAwMTc5IDAwMDAwIG4gCjAwMDAwMDAzMDUgMDAwMDAgbiAKMDAwMDAwMDM3NiAwMDAwMCBuIAowMDAwMDAwNDM3IDAwMDAwIG4gCnRyYWlsZXIKPDwvU2l6ZSA3IC9Sb290IDMgMCBSPj4Kc3RhcnR4cmVmCjQ1NgUlRUYlRjAKJSVFTg==';



 var attachment = new GlideRecord('sys_attachment');
     attachment.initialize();
     attachment.table_name = "u_imp";
     attachment.table_sys_id = "9a1a7deb473f5290c3e13f52e36d4365";
     attachment.file_name = "test.pdf";
     attachment.content_type = "application/pdf";
     attachment.encoded_string = pdf_base64; 
     var sysId = attachment.insert();

 

1 ACCEPTED SOLUTION

Ankur Bawiskar
Tera Patron
Tera Patron

@Lom 

that's now how attachments are created.

try this script

If the base64 data is correct then the file will be uploaded fine and you can view the content as well

var pdf_base64 = 'JVBERi0xLjMKJcfsj6IKMSAwIG9iagogPDwvVHlwZSAvUGFnZSAvUGFyZW50IDMgMCBSIC9SZXNvdXJjZXMgMiAwIFIgL0NvbnRlbnRzIDQgMCBSIC9NZWRpYUJveCBbMCAwIDYxMiA3OTJdID4+CmVuZG9iagoyIDAgb2JqIDw8L1Byb2NTZXQgNiAwIFIgL0ZvbnQgPDwvRjEgNSAwIFIgPj4gPj4KZW5kb2JqCjMgMCBvYmogPDwvVHlwZSAvUGFnZXMgL0tpZHMgWzEgMCBSXSAvQ291bnQgMSAvTWVkaWFCb3ggWzAgMCA2MTIgNzkyXSA+PgplbmRvYmoKNCAwIG9iaiA8PC9MZW5ndGggNzggL0ZpbHRlciAvRmxhdGVEZWNvZGUgPj4Kc3RyZWFtCkJUCi9GMSA0OCBUZiAxMCAxMCBUZCAoSGVsbG8sIHdvcmxkLikgVGoKRVQKZW5kc3RyZWFtCmVuZG9iago1IDAgb2JqIDw8L1R5cGUgL0ZvbnQgL1N1YnR5cGUgL1R5cGUxIC9CYXNlRm9udCAvSGVsdmV0aWNhID4+CmVuZG9iago2IDAgb2JqIFsgL1BERiAvVGV4dCBdCmVuZG9iagp4cmVmCjAgNwowMDAwMDAwMDAwIDY1NTM1IGYgCjAwMDAwMDAwMDkgMDAwMDAgbiAKMDAwMDAwMDA2NyAwMDAwMCBuIAowMDAwMDAwMTc5IDAwMDAwIG4gCjAwMDAwMDAzMDUgMDAwMDAgbiAKMDAwMDAwMDM3NiAwMDAwMCBuIAowMDAwMDAwNDM3IDAwMDAwIG4gCnRyYWlsZXIKPDwvU2l6ZSA3IC9Sb290IDMgMCBSPj4Kc3RhcnR4cmVmCjQ1NgUlRUYlRjAKJSVFTg==';
var tableSysId = '9a1a7deb473f5290c3e13f52e36d4365';
var tableName = 'u_imp';
var contentType = 'application/pdf';
var ecc = new GlideRecord('ecc_queue');
ecc.initialize();
ecc.agent = "AttachmentCreator";
ecc.topic = "AttachmentCreator";
ecc.name = "test.pdf:" + contentType;
ecc.source = tableName + ":" + tableSysId;
ecc.payload = pdf_base64;
ecc.insert();

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

11 REPLIES 11

Lom
Tera Contributor

Yes, that creates a record in sys_attachment

What is the tsble sysid here refrred to ?
Is u_imp your custom table name?

Regards,
Debasis

@Debasis Pati 

It uses OOB attachment creator logic for creating attachment

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

Thank you @Ankur Bawiskar ,

Got it now so from this we ecc queue we are creating a record which servicenow will process and will create a pdf file in the specified table.
Am I correct?

Regards,
Debasis



@Debasis Pati 

yes

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