有向客户发送包含多个声明的单个电子邮件附件的功能需求。
我很了解Netsuite suitescript和如何使用nlapiPrintRecord()生成PDF,但正如你所知道的,这只支持1条记录。
我还读到了suiteanswer,其中您可以打印记录,将其保存到文件柜,然后引用它,但是这会使用大量的单元治理,并且会严重限制在单个脚本中可以生成的数据量。
我可能需要生成一封包含100条语句的电子邮件。这似乎是一项不可能完成的任务,但如果我生成自己的模板并使用xmlToPdf(),那么我就可以使用保存的搜索结果,并让电子邮件包含成千上万的页面。
有没有一种可能的方法来生成语句,而不必先保存记录或加载客户,因为这也使用了重要的单位,然后可以合并到单个pdf文件中。
发布于 2018-05-11 07:39:31
您是否尝试过查看高级PDF模板?这些使用Freemarker的模板,你可以很容易地组合多个PDF。请注意,NetSuite中电子邮件附件的大小是有限制的,我想是5mb。
发布于 2018-05-12 00:18:31
SuiteScript可以从您的搜索结果生成单个文档。使用Freemarker HTML将是您最好的方法。如上所述,请记住电子邮件附件的文件大小。如果您的语句中包含图形,则会增加大小。
发布于 2018-05-12 03:06:27
我有过几次类似的需求。
其核心是使用N/render.TemplateRenderer (ss2)或nlobjTemplateRenderer。
它们的接口略有不同,但都将获取搜索结果,并允许您使用BFO Pdf生成器语义来生成语句。
对于头/主体信息,我通常创建一个自定义记录,对成员记录进行分组。对于您的语句,您可以只使用客户记录,但是您仍然需要一种有效的方法来查找要添加到呈现过程中的已保存搜索结果。
SS1.0
var statementTrans = nlapiSearchRecord('transaction', 'customsearch_kotn_statement_trans', sf('entity', null, 'is', customerId));
if(statementTrans) renderer.addSearchResults('trans', statementTrans);然后在模板中:
<#list trans as tran>
<#if sinceDate lte tran.trandate?date>
<tr>
<td align="center" colspan="3">${tran.trandate?date}</td>
<td align="left" colspan="8">${tran.type} #${tran.tranid}<#if tran.custbody_agencys_customer?has_content>, ${tran.custbody_agencys_customer.companyname}</#if></td>
<td align="left" colspan="3">${tran.duedate?date}</td>
<td align="right" colspan="3">${tran.amount?string.currency}</td>
<td align="right" colspan="3">${tran.amountpaid?string.currency}</td>
<#assign runningBalance=runningBalance+tran.amountremaining>
<td align="right" colspan="3">${tran.amountremaining?string.currency}</td>
</tr>
</#if>
</#list>https://stackoverflow.com/questions/50281243
复制相似问题