对于 NetSuite Map/Reduce 脚本 - 为什么从 Restlet 调用时映射阶段失败?

For NetSuite Map/Reduce script - Why is map stage failing when being called from Restlet?

在 NetSuite 中,有一个调用部署的 map/reduce 脚本的 Restlet 脚本,但是在查看状态页面的详细信息时映射阶段显示为失败(getInputData 阶段执行 运行 并显示为完成).

但是,如果我从 map/reduce 脚本的部署中执行 "Save and Execute",它工作正常(Map 阶段执行 运行)。

注意:

下面是从我的 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);

MapReduceScriptTask.submit() 的帮助没有提到这一点,但 ScheduledScriptTask.submit() 的帮助提到了:

Only administrators can run scheduled scripts. If a user event script calls ScheduledScriptTask.submit(), the user event script has to be deployed with admin permissions.

我测试了使用管理员角色凭证发布到我的 restlet,与使用我的其他自定义角色相比,它运行良好。也许就像 ScheduledScriptTask 一样,MapReduceScriptTask 只能由管理员角色调用?我的自定义角色确实具有 SuiteScript - View 和 SuiteScript Scheduling - Full 权限。以为这样就可以了,但显然不行。

有人对此有进一步的了解吗?

您还需要文档和文件 - 查看权限以及 SuiteScript - 查看和 SuiteScript 计划 - 访问 Map/Reduce 脚本的完全权限。