SuiteScript 2 可以发送pdf报表

SuiteScript 2 can send pdf statements

我很难在 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 为真。对此的任何帮助表示赞赏。

谢谢

此 API 调用中的许多参数模仿 'Print Individual Statement' 页面上的 UI 选项。我在那里复制了一些字段级帮助以帮助解释每个设置。

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

  • 解决
  • printMode - 在(render.PrintMode.HTMLrender.PrintMode.PDF

    [ 中呈现此语句的打印模式=49=]
  • formId - 用于打印报表的表单的内部 ID。关闭此选项以使用默认报表形式。

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

  • statementDate - 报表日期。此字段中的日期是用于计算帐龄的日期和出现在对帐单上的日期。

  • openTransactionsOnly - Select 此选项仅包括对帐单的未结交易。如果您输入了开始日期,则会显示从该开始日期开始的未结交易。如果您没有输入开始日期,则会显示所有未结交易。 Show Only Open Transaction 选项对于截至当前日期打印的报表最有用。如果您 select 仅显示未结交易并且使用的日期不是今天的日期,您可能会出现余额差异。

这是一个代码片段。它使用 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
});