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。