SuiteScript 2 可以发送 pdf 报表

jk1*_*960 2 netsuite suitescript

我很难在 SS2 中获得要呈现的语句,我发现答案是 SS1 并且有一段时间没有使用过它,但它似乎在 ss2 中不起作用。我正在使用 SS2 render.statement 方法,但我收到了一个 "error.SuiteScriptError","name":"UNEXPECTED_ERROR","message":null,"stack":["renderStatement(N/render.js)" 我我不清楚一些论点实际上是什么。我认为 entityid 是客户 ID,printMode 是 pdf 枚举,formId 我不知道,它说它需要一个数字,但我没有像 NetSuite 中的其他对象一样在列表中的表单旁边看到内部 ID,我打开了 InternalIds。StartDate 是您要开始提取交易之前的日期?声明日期?今天的日期?OpentransactionOnly 为真。

谢谢

mic*_*oel 5

此 API 调用中的许多参数模仿“打印个人声明”页面上的 UI 选项。我在那里复制了一些字段级别的帮助来帮助解释每个设置。

  • entityId - 客户的内部 ID。注意:我过去曾遇到过错误,这些错误已通过使用parseInt(customer).

  • printMode - 在(render.PrintMode.HTMLrender.PrintMode.PDF)中呈现此语句的打印模式

  • formId - 用于打印语句的表单的内部 ID。保留此选项以使用默认报表格式。

  • startDate - 如果您选择输入日期,则这是出现在对帐单上的最早交易的日期。如果您选择备注输入日期,则客户历史记录中的所有交易都会出现在对帐单上。

  • statementDate - 报表日期。此字段中的日期是用于计算帐龄的日期以及出现在报表中的日期。

  • openTransactionsOnly - 选择此选项以仅包含报表上的未结交易。如果您输入了开始日期,则会显示该开始日期的未清交易记录。如果您尚未输入开始日期,则会显示所有未结交易。仅显示未结交易选项对于截至当前日期打印的报表最有用。如果您选择“仅显示未结交易”并使用与今天不同的日期,您可能会出现余额差异。

这是一个代码片段。它使用moment.js来计算上个月的第一天和最后一天的日期。

var startDate = format.format({
  value: moment().subtract(1, 'months').startOf('month').toDate(),
  type: format.Type.DATE
});

var statementDate = format.format({
  value: moment().subtract(1, 'months').endOf('month').toDate(),
  type: format.Type.DATE
});

var statement = render.statement({
  entityId: parseInt(customer),
  printMode: render.PrintMode.PDF,
  startDate: startDate,
  statementDate: statementDate
});
Run Code Online (Sandbox Code Playgroud)