我希望重新安排日程安排脚本,当日程安排脚本使用之前命令限制。 Netsuite的日程安排脚本有10,000个单元。 在SuiteScript 1.0版本中,rescheduling由“nlapiScheduleScript()api”实现,但在SuiteScript 2.0版本中如何重新安排脚本。如何使用SuiteScript 2.0版本重新安排Netsuite中的日程安排脚本
帮助我实现这一点,在此先感谢。
我希望重新安排日程安排脚本,当日程安排脚本使用之前命令限制。 Netsuite的日程安排脚本有10,000个单元。 在SuiteScript 1.0版本中,rescheduling由“nlapiScheduleScript()api”实现,但在SuiteScript 2.0版本中如何重新安排脚本。如何使用SuiteScript 2.0版本重新安排Netsuite中的日程安排脚本
帮助我实现这一点,在此先感谢。
该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
};
});
好像scheduledScriptTask.submit()方法返回null。
var taskId = rescheduleCurrentScript();
上面的taskId在记录时返回null。 NetSuite可能是一个bug吗?
这是否也允许脚本在执行中的同一点处离开?例如,如果我循环播放预定脚本中已保存搜索的结果,那么此方法是否可以在保存的搜索中以相同结果恢复预定脚本?或者它会从保存的搜索的第一个结果开始? –
无论何时重新安排预定脚本,您都需要在停止的地方继续进行管理。这通常通过内部ID对结果进行排序,存储上次处理的ID并过滤搜索大于上次处理的内部ID的搜索。 – erictgrubaugh
哪里最安全的地方存储最后处理的ID? –