2017-02-21 1 views
0

Un service SuiteScript peut-il récupérer des informations de la base de données NetSuite et les renvoyer en tant que JSON à un utilisateur qui n'est pas connecté au site Web/NetSuite?Service SuiteScript obtenir des informations de base de données lorsque l'utilisateur n'est pas connecté?

Par exemple; Si un utilisateur accède à http://website.com/sca-dev-montblanc/services/upcomingCourses.Service.ss, le service doit récupérer une liste des prochains cours de la base de données NetSuite et les renvoyer sous forme de JSON.

J'ai mis en place un module SCA avec 1 fichier service SuiteScript qui fait cela, mais lorsque l'utilisateur n'est pas connecté je reçois la réponse:

{ "errorStatusCode": "403", "errorCode": « ERR_INSUFFICIENT_PERMISSIONS », « errorMessage »: « autorisations insuffisantes »}

J'ai déterminé que les résultats du problème de la ligne nlapiLoadRecord('customrecord_course', 1); dans mon service. Quand je commente cela et que je renvoie simplement JSON factice, tout fonctionne. Cela ressemble donc à un problème d'autorisations d'accès à la base de données. Est-il possible de permettre l'accès à cette information sans que l'utilisateur ne se connecte? Peut-être que je peux changer les permissions de table? Ou si je fais partie du service d'une autre application? Tout conseil serait extrêmement utile.

/*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

J'ai aussi fait tellement de choses En SCA laissez-moi savoir si vous aurez besoin d'aide, je vais vous aider –

Répondre

3

Oui.

Dans votre déploiement de script, sélectionnez le script disponible sans connexion et sélectionnez tous les rôles pour l'audience.

Dans ce cas, vous utiliserez généralement l'URL externe pour accéder au suitelet.

+0

Merci. Est-ce que cela fonctionne également si j'accède à une table différente? Par exemple, en ce moment j'accède à la table 'customrecord_course'. Si j'essaie d'accéder 'customer',' salesorder' ou autre, cela fonctionnera-t-il encore? –

+1

Oui. Si votre script s'exécute avec un privilège d'administrateur, il peut accéder à n'importe quoi. – bknights

+0

Le script de droite doit avoir un accès administrateur –