我希望重新安排日程安排脚本,当调度脚本使用到达调控器限制之前。 Netsuite中的计划脚本有10,000个单位。 在SuiteScript 1.0版本中,重新安排是由" nlapiScheduleScript()api"但在SuiteScript 2.0版本中如何重新安排脚本。
帮助我实现这一目标,提前谢谢。
答案 0 :(得分:10)
N/task
和N/runtime
模块具有您正在寻找的内容。您将使用N/task
进行重新安排,并使用N/runtime
获取当前的脚本信息。
如果没有您的确切代码,我无法提供一个非常具体的示例,但您的预定脚本最终会看起来像:
/**
* @NApiVersion 2.x
* @NScriptType ScheduledScript
*/
define(['N/task', 'N/runtime'], function(task, runtime) {
/**
* Reschedules the current script and returns the ID of the reschedule task
*/
function rescheduleCurrentScript() {
var scheduledScriptTask = task.create({
taskType: task.TaskType.SCHEDULED_SCRIPT
});
scheduledScriptTask.scriptId = runtime.getCurrentScript().id;
scheduledScriptTask.deploymentId = runtime.getCurrentScript().deploymentId;
return scheduledScriptTask.submit();
}
function execute(context) {
// Do stuff...
while(...) {
// Do processing in loop
// Check remaining usage and reschedule if necessary
if (runtime.getCurrentScript().getRemainingUsage() < 100) {
var taskId = rescheduleCurrentScript();
log.audit("Rescheduling status: " + task.checkStatus(taskId));
return;
}
}
}
return {
execute: execute
};
});
答案 1 :(得分:0)
似乎scheduledScriptTask.submit()返回null。
var taskId = rescheduleCurrentScript();
上面的taskId在记录时返回null。 它可能是NetSuite方面的一个错误吗?
答案 2 :(得分:0)
可接受的答案对偶尔的收益很有帮助。除此之外,如果您知道自己将经常违反治理限制,则可能要考虑使用Map/Reduce script,因为它内置了屈服/恢复功能。