2017-02-21 4 views
0

SuiteScript Serviceは、NetSuiteデータベースから情報を取得し、Webサイト/ 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

右のスクリプトには管理者権限が必要です –

関連する問題