Rendering and consolidating multiple picking ticket in Customer Locale PDFs into a single file

let xmlContent = `<?xml version="1.0"?>n<!DOCTYPE pdf PUBLIC "-//big.faceless.org//report" "report-1.1.dtd">n`;

                            xmlContent += "<pdfset>";

                            for (let i = 0; i < Object.keys(groupedLines).length; i++) {

                                let internalId = Object.keys(groupedLines)[i];
                               
                                let transactionFile = render.pickingTicket({

                                    entityId: Number(internalId),

                                    printMode: render.PrintMode.PDF,

                                    formId: Number(custLocaleformId),

                                    inCustLocale: true

                                });

                                //save the pdf to filecabinet

                                transactionFile.name = `Picking_Ticket_${i}.pdf`;

                                transactionFile.folder = 3855258;

                                transactionFile.isOnline = true;

                                let fileId = transactionFile.save();

                                let fileObj = file.load({

                                    id: fileId

                                });

                                let fileUrl = fileObj.url;

                                let pdf_fileURL = xml.escape(fileUrl);

                                xmlContent += "<pdf src='" + pdf_fileURL + "'/>";                                

                            }

                            xmlContent += "</pdfset>";

                            let filePDF = render.xmlToPdf(xmlContent);

In SuiteLet page, when executing this will result in the governance limit. So, in order to overcome, use map/reduce.

Leave a comment

Your email address will not be published. Required fields are marked *