I am trying to Render search result onpdf via Suitescript 2.0 render.addSearchResults function, however, on pdf searchResults are not rendered
Can anyone advice where I am making mistake, the pdf is rendered correctly but search Reults are not rendered on pdf
/**
* @NApiVersion 2.x
* @NScriptType Suitelet
*/
// This sample shows how to render search results into a PDF file.
define([‘N/render’, ‘N/search’,’N/file’], function(render, search,file) {
function onRequest(options) {
var request = options.request;
var response = options.response;
var xmlTemplateFile = file.load(‘Templates/PDF Templates/custtmpl_121_t2418832_522.template.xml’);
var rs = search.create({
type: “customer”,
filters:
[
[“balance”,”notequalto”,”0.00″],
“AND”,
[“internalid”,”anyof”,”126″],
“AND”,
[“transaction.trandate”,”within”,”2022/07/01″,”2023/01/31″],
“AND”,
[“transaction.type”,”anyof”,”CustCred”,”CustInvc”,”CustPymt”]
],
columns:
[
search.createColumn({
name: “trandate”,
join: “transaction”,
sort: search.Sort.ASC,
label: “Date”
}),
search.createColumn({
name: “tranid”,
join: “transaction”,
sort: search.Sort.ASC,
label: “Document Number”
}),
search.createColumn({name: “altname”, label: “Name”}),
search.createColumn({
name: “amount”,
join: “transaction”,
label: “Amount”
}),
search.createColumn({
name: “item”,
join: “transaction”,
label: “Item”
}),
search.createColumn({name: “consolbalance”, label: “Consolidated Balance”}),
search.createColumn({name: “balance”, label: “Balance”}),
search.createColumn({
name: “line”,
join: “transaction”,
sort: search.Sort.ASC,
label: “Line ID”
}),
search.createColumn({
name: “type”,
join: “transaction”,
label: “Type”
}),
search.createColumn({
name: “amountremaining”,
join: “transaction”,
label: “Amount Remaining”
}),
search.createColumn({
name: “fxbalance”,
join: “customerCurrencyBalance”,
label: “Balance (Foreign Currency)”
})
]
}).run();
var results = rs.getRange(0, 1000);
log.debug({
title:’Result’,
details:results
})
var renderer = render.create();
log.debug({
title:’renderer’,
details:JSON.stringify(renderer.TemplateRenderer)
})
renderer.templateContent = xmlTemplateFile.getContents();
renderer.addSearchResults({
templateName: ‘custtmpl_121_t2418832_522’,
searchResult: results
});
var newfile = renderer.renderAsPdf();
response.writeFile({file:newfile, isInline:true});
}
return {
onRequest: onRequest
};
});
Hi,
This section is wrong:
renderer.templateContent = xmlTemplateFile.getContents();
renderer.addSearchResults({
templateName: ‘custtmpl_121_t2418832_522’,
searchResult: results
});
templateName would usually be something like mySearchResults.
Then in the template itself, you refer to the results like so:
<#list mySearchResults as result>
Thanks,
Chris