在NetSuite中,有一个Restlet脚本调用已部署的map / reduce脚本,但是当查看状态页面的详细信息时,map阶段显示为Failed(getInputData阶段确实运行并显示为Complete)。
但是,如果我从map / reduce脚本的部署中执行“保存并执行”,它可以正常工作(Map stage会运行)。
注意:
下面是从我的Restlet调用create.task代码片段。不知道出了什么问题,感谢任何帮助。
var mrTask = task.create({
taskType: task.TaskType.MAP_REDUCE,
scriptId: 'customscript_test',
deploymentId: 'customdeploy_test'
});
var mrTaskId = mrTask.submit();
var taskStatus = task.checkStatus(mrTaskId);
log.debug('taskStatus', taskStatus);
您还需要文档和文件-View权限以及SuiteScript - View和SuiteScript Scheduling - 访问Map / Reduce脚本的完全权限。
MapReduceScriptTask.submit()的帮助没有提到这一点,但ScheduledScriptTask.submit()的帮助:
只有管理员才能运行预定脚本。如果用户事件脚本调用ScheduledScriptTask.submit(),则必须使用管理员权限部署用户事件脚本。
我测试了使用管理员角色凭证发布到我的restlet,它可以正常工作,而不是使用我的其他自定义角色。也许就像ScheduledScriptTask一样,MapReduceScriptTask只能由管理员角色调用?我的自定义角色确实具有SuiteScript - View和SuiteScript Scheduling - 完全权限。以为这会伎俩,但显然不是。
有人对此有进一步的了解吗?