计划脚本 (SS1.0) 中的 nlapiYieldScript 错误

Error with nlapiYieldScript from a Scheduled Script (SS1.0)

在 SuiteScript 1.0 中,我得到 NLAPIYIELDSCRIPT_MUST_BE_CALLED_FROM_A_SCHEDULED_SCRIPT 即使脚本已安排。

执行途径:

  1. 带有自定义按钮的自定义 Suitelet 表单
  2. 自定义按钮触发客户端脚本
  3. 客户端脚本以管理员身份触发 SuiteLet

    var sletURL = nlapiResolveURL('SUITELET', 'customscriptjcse_au_da_manual_paymentupd', 'customdeployjcse_au_da_manual_paymentupd',false)+'&userid='+currentUser; var resp = nlapiRequestURL(sletURL);

  4. Suitelet 触发脚本:

    var result = nlapiScheduleScript('customscriptjcse_au_da_payment_ss', 'customdeployjcse_au_da_payment_ss_manual', params);

甚至计划脚本上下文的日志记录也说:

Started at: 20:28:50 GMT-0800 (PST) by User ID: 7880 Context: scheduled

在预定脚本中,我有:

if (context.getRemainingUsage() < 250 ) { nlapiYieldScript(); } context.setPercentComplete((processed/trancount*100).toFixed(1));

知道为什么会出现此错误吗?

请检查您的预定脚本逻辑,以使用 every、filter、forEach、map 和一些。 SuiteScript 不能在这些控制结构的中间让步。那是我在 forEach 中的情况,我尝试 nlapiYieldScript() 并且 SuiteScript 抛出 NLAPIYIELDSCRIPT_MUST_BE_CALLED_FROM_A_SCHEDULED_SCRIPT.