SuiteScript 服务在用户未登录时获取数据库信息?
SuiteScript Service get Database Info when User Not Logged In?
SuiteScript 服务能否从 NetSuite 数据库中获取信息并将其 return 作为 JSON 提供给未登录 website/NetSuite 的用户?
例如;如果用户访问 http://website.com/sca-dev-montblanc/services/upcomingCourses.Service.ss,该服务应该从 NetSuite 数据库中获取即将开始的课程列表,并将其作为 JSON.
发回
我已经实现了一个带有 1 个 SuiteScript 服务文件的 SCA 模块来执行此操作,但是当用户未登录时我收到响应:
{"errorStatusCode":"403","errorCode":"ERR_INSUFFICIENT_PERMISSIONS","errorMessage":"Insufficient permissions"}
我确定问题是由我服务中的 nlapiLoadRecord('customrecord_course', 1);
行引起的。当我对此发表评论并发回虚拟 JSON 时,一切正常。所以看起来像是数据库访问权限问题。无论如何,是否允许用户在不登录的情况下访问此信息?也许我可以更改 table 权限?或者如果我将服务作为另一个应用程序的一部分?任何建议都会非常有帮助。
/*exported service*/
function service (request)
{
'use strict';
var Application = require('Application');
try
{
var method = request.getMethod();
switch (method)
{
case 'GET':
// Below line of code causes error
var firstCource = nlapiLoadRecord('customrecord_course', 1);
var coursesTest = [
{
course_id: record.getFieldValue('id'),
course_name: record.getFieldValue('name')
}
];
Application.sendContent(coursesTest);
break;
default:
Application.sendError(methodNotAllowedError);
}
}
catch (e)
{
Application.sendError(e);
}
}
是的。
在您的脚本部署中,将脚本标记为无需登录即可使用,并且 select 观众的所有角色。
在这种情况下,您通常会使用外部 url 来访问 suitelet。
SuiteScript 服务能否从 NetSuite 数据库中获取信息并将其 return 作为 JSON 提供给未登录 website/NetSuite 的用户?
例如;如果用户访问 http://website.com/sca-dev-montblanc/services/upcomingCourses.Service.ss,该服务应该从 NetSuite 数据库中获取即将开始的课程列表,并将其作为 JSON.
发回我已经实现了一个带有 1 个 SuiteScript 服务文件的 SCA 模块来执行此操作,但是当用户未登录时我收到响应:
{"errorStatusCode":"403","errorCode":"ERR_INSUFFICIENT_PERMISSIONS","errorMessage":"Insufficient permissions"}
我确定问题是由我服务中的 nlapiLoadRecord('customrecord_course', 1);
行引起的。当我对此发表评论并发回虚拟 JSON 时,一切正常。所以看起来像是数据库访问权限问题。无论如何,是否允许用户在不登录的情况下访问此信息?也许我可以更改 table 权限?或者如果我将服务作为另一个应用程序的一部分?任何建议都会非常有帮助。
/*exported service*/
function service (request)
{
'use strict';
var Application = require('Application');
try
{
var method = request.getMethod();
switch (method)
{
case 'GET':
// Below line of code causes error
var firstCource = nlapiLoadRecord('customrecord_course', 1);
var coursesTest = [
{
course_id: record.getFieldValue('id'),
course_name: record.getFieldValue('name')
}
];
Application.sendContent(coursesTest);
break;
default:
Application.sendError(methodNotAllowedError);
}
}
catch (e)
{
Application.sendError(e);
}
}
是的。
在您的脚本部署中,将脚本标记为无需登录即可使用,并且 select 观众的所有角色。
在这种情况下,您通常会使用外部 url 来访问 suitelet。