2017-02-21 15 views
0

Может ли служба SuiteScript получить информацию из базы данных NetSuite и вернуть ее как JSON пользователю, который не зашел на сайт/NetSuite?Служба SuiteScript получает информацию о базе данных, когда пользователь не выполнил вход?

Например, если пользователь обращается к http://website.com/sca-dev-montblanc/services/upcomingCourses.Service.ss, служба должна получить список предстоящих курсов из базы данных NetSuite и отправить его обратно как JSON.

я реализовал модуль SCA с 1 SuiteScript Service файл, который делает это, но когда пользователь не вошел в систему я получаю ответ:

{ «errorStatusCode»: «403», «ERRORCODE»: «ERR_INSUFFICIENT_PERMISSIONS», «ErrorMessage»: «Недостаточно прав»}

я определил, что проблема вытекает из nlapiLoadRecord('customrecord_course', 1); линии в моей службе. Когда я прокомментирую это и просто отправлю обратно фиктивный JSON, все работает. Поэтому выглядит проблема с правами доступа к базе данных. Есть ли способ разрешить доступ к этой информации без входа пользователя в систему? Может быть, я могу изменить разрешения для таблиц? Или, если я сделаю службу частью другого приложения? Любой совет будет очень полезен.

/*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); 
    } 
} 
+0

Я также сделал так много вещей В SCA дайте мне знать, если вам понадобится помощь, я помогу вам –

ответ

3

Да.

В развертывании скрипта отметьте скрипт как доступный без входа в систему и выберите все роли для аудитории.

В этом случае вы обычно используете внешний URL для доступа к набору.

+0

Спасибо. Это также работает, если я обращаюсь к другой таблице? Например, прямо сейчас я обращаюсь к таблице 'customrecord_course'. Если я попытаюсь получить доступ к 'customer',' salesorder' или т. Д., Он все равно будет работать? –

+1

Да. Если ваш сценарий работает с правами администратора, он может получить доступ ко всему. – bknights

+0

Правильный скрипт должен иметь доступ администратора –

 Смежные вопросы

  • Нет связанных вопросов^_^