套间Netsuite USAGE_LIMIT_EXCEEDED错误

时间:2019-04-12 06:17:01

标签: netsuite suitescript2.0

我创建了一个suitelet脚本,在该脚本中,将程序集构建中的行项目设置在suitelet中乘以数量。也就是说,如果数量为2,则该套件将在套件中设置两行。点击保存即可打开套件。

问题是,如果装配体中有更多项目,则套件将无法打开,并引发错误USAGE_LIMIT_EXCEEDED。

我试图减少脚本代码,但没有帮助

var b=0;var nItemLinesCount = objRecord.getLineCount({ sublistId: 'component' }); for(var i=0; i<nItemLinesCount; i++)                                          
{

  if(Qty > 0)
  {
    for(j=0; j<Qty; j++)
    {
      sublist.setSublistValue({
      id : 'custpage_item',
      line : b,
      value : nItem
     });
       sublist.setSublistValue({
      id : 'custpage_qty',
      line : b,
      value : '1'
      }); b++;
    }
  }                                                                         
}

1 个答案:

答案 0 :(得分:0)

每个SuiteScript都有一个“使用限制”(有时称为管理单元)。

解决此问题的方法是使用nlapiGetContext().getRemainingUsage()检查是否有大量使用情况,如果该数目小于您在脚本的下一个循环中预期使用的数目,请重新计划脚本以再次运行以后。

您需要确定性地设计脚本。您需要能够多次运行脚本,而无需创建任何重复的数据或结果。如果以这种方式设计脚本,那么重新安排SuiteScript在使用率较低时运行将不会产生任何意外的副作用。

这是一个例子:

https://gist.github.com/iloveitaly/eb3fffa67c5ea08010d3de6e552f84d3

具体来说,请查看isScriptUsageRemainingrescheduleScript函数。