2017-02-21 9 views
0

SuiteScript 서비스가 NetSuite 데이터베이스의 정보를 수집하여 웹 사이트/NetSuite에 로그인하지 않은 사용자에게 JSON으로 반환 할 수 있습니까?SuiteScript 서비스는 사용자가 로그인하지 않은 경우 데이터베이스 정보를 가져 옵니까?

예 : 사용자가 http://website.com/sca-dev-montblanc/services/upcomingCourses.Service.ss에 액세스하면 서비스는 NetSuite 데이터베이스에서 다음 강의 목록을 가져와 JSON으로 다시 전송해야합니다.

나는이 작업을 수행하지만 사용자가 로그인하지 않았을 때 응답 수 1 개 SuiteScript 서비스 파일로 SCA 모듈 구현 한

:

{ "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

오른쪽 스크립트에 관리자 권한이 있어야합니다. –