User event script
define([],
() => {
const beforeLoad = (scriptContext) => {
if(scriptContext.type=="view" ) {
try {
scriptContext.form.addButton({
id: 'custpage_buttons',
label: 'Print Packing Slip',
functionName: 'printPackingSlip'
});
scriptContext.form.clientScriptFileId = 334018;
}catch (err){
log.debug('error',err)
}
}
}
return {beforeLoad}
});
Client script
define(['N/currentRecord','N/runtime', 'N/url'],
/**
* @param{runtime} runtime
* @param{url} url
*/
function(currentRecord , runtime, url) {
function pageInit(scriptContext) {
}
function printPackingSlip(){
try {
var currentRec=currentRecord.get().id;
console.log('currentid',currentRec)
var createLinkUrl=url.resolveScript({
scriptId: 'customscript_jj_sl_pack_slip_cdus_1158',
deploymentId: 'customdeploy_jj_sl_packslip_cdus_1158',
returnExternalUrl: false,
params: {
currentRec: currentRec
}
});
window.open(createLinkUrl)
}catch (e) {
log.debug(e)
}
}
return {
pageInit: pageInit,
printPackingSlip: printPackingSlip
};
});
Suitelet
define(['N/record', 'N/render','N/file'],
(record, render,file) => {
const onRequest = (scriptContext) => {
try {
if (scriptContext.request.method === 'GET') {
var purchaseOrderRecord = scriptContext.request.parameters.currentRec;
try {
var xmlTemplateFile = file.load('Templates/PDF Templates/packingslip.xml');
var myFile = render.create();
myFile.templateContent = xmlTemplateFile.getContents();
myFile.addRecord('record', record.load({
type: record.Type.PURCHASE_ORDER,
id: purchaseOrderRecord
}));
var packingSlipPdf = myFile.renderAsPdf();
scriptContext.response.writeFile(packingSlipPdf,true)
} catch (error) {
log.error("Error @render", error);
}
}
} catch (e) {
log.debug('Error @onRequest', e);
}
}
return {onRequest}
});