Netsuite Script объединяет / объединяет несколько операторов - PullRequest
0 голосов
/ 10 мая 2018

Наличие функционального требования для отправки клиенту по электронной почте отдельного вложения, содержащего несколько утверждений.

Я хорошо понимаю, что Netsuite suitescript и как генерировать PDF с помощью nlapiPrintRecord (), но, как вы знаете, он поддерживает только 1 запись.

Я также прочитал набор ответов, в котором вы можете распечатать запись, сохранить ее в картотеке и затем сослаться на нее, однако это требует значительного управления единицами и серьезно ограничивает объем данных, которые могут быть сгенерированы в одном сценарии. .

Возможно, мне придётся создать электронное письмо, содержащее 100 заявлений. Это кажется невыполнимой задачей, но если бы я сгенерировал свой собственный шаблон и использовал xmlToPdf (), я мог бы использовать сохраненные результаты поиска, и электронное письмо содержало бы тысячи страниц.

Существует ли возможный способ создания выписки без необходимости сохранять запись или сначала загружать клиента, поскольку при этом также используются значительные единицы, которые затем можно объединить в один файл PDF.

Ответы [ 3 ]

0 голосов
/ 11 мая 2018

SuiteScript может генерировать один документ из результатов поиска.Использование Freemarker HTML будет вашим лучшим способом.Как уже говорилось, имейте в виду размер файла для вложений электронной почты.Если в вашем заявлении есть графика, она увеличится в размере.

0 голосов
/ 11 мая 2018

У меня было подобное требование пару раз.

В основе этого лежит использование 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>,&#160;${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>
0 голосов
/ 11 мая 2018

Вы пробовали искать расширенные шаблоны PDF? Они используют Freemarker для шаблонов, и вы можете легко комбинировать несколько PDF. Просто имейте в виду, что в NetSuite есть ограничение на размер вложений электронной почты, я думаю, 5 МБ.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...