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



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

但是,如果我从map/reduce脚本的部署中执行"保存并执行",它可以正常工作(Map阶段确实运行)。

请注意:

  • restlet 或 map/reduce 脚本的执行日志上都没有错误。
  • 在 restlet 的定义部分以及函数参数中具有"N/任务"。
  • 映射
  • /缩减脚本已选中映射复选框。映射/归约脚本部署未计划,并且具有其他字段的默认值。
  • 使用 NetSuite 帮助"查看快速棕色狐狸跳跃"示例地图/归约脚本
  • 使用沙盒帐户
  • 使用自定义角色发布到 restlet

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

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

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

只有管理员才能运行计划脚本。如果用户事件脚本调用 ScheduledScriptTask.submit(),则必须使用管理员权限部署用户事件脚本。

我使用管理员角色凭据对发布到我的 restlet 进行了测试,与使用我的其他自定义角色相比,它工作正常。也许就像ScheduledScriptTask一样,MapReduceScriptTask只能由管理员角色调用?我的自定义角色具有"套件脚本 - 视图"和"套件脚本计划"- 完全权限。以为这样可以解决问题,但显然不是。

有人对此有任何进一步的见解吗?

最新更新