关于部署:对于NetSuite Map / Reduce脚本-为什么从Restlet调用地图阶段会失败?

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

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

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

请注意:

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

下面是我的Restlet中的create.task代码片段的调用。不知道出什么问题了,我们将不胜感激。

1
2
3
4
5
6
7
8
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-视图和SuiteScript计划-完全权限。认为可以解决问题,但显然没有。

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


您还需要Documents and Files -View权限以及SuiteScript-View和SuiteScript计划-完整权限才能访问Map / Reduce脚本。