ANS-1933 · DéVELOPPEMENT SUITESCRIPT
Peut-on charger des enregistrements NetSuite avec des autorisations de « consultation » dans SuiteScript ?
Les enregistrements peuvent être chargés avec l'autorisation « Affichage » dans SuiteScript, mais leur enregistrement nécessite un accès en modification.
Solution courte
Oui, il est possible de charger des enregistrements à l’aide de la fonction N/record.load dans SuiteScript 2.x avec l’autorisation « Affichage ». Cependant, l’enregistrement ou la validation des modifications via N/record.save échouera en raison d’autorisations insuffisantes, car l’accès « Affichage » ne confère pas de droits de modification. Une autorisation de type « Modification » ou supérieure est requise pour enregistrer les modifications.
Scénario
Un utilisateur tente d’interagir avec des enregistrements NetSuite via SuiteScript. Le rôle de l’utilisateur dispose d’une autorisation de « consultation » pour un type d’enregistrement spécifique, tel qu’un élément de service. L’objectif est de déterminer si un script peut récupérer correctement les données d’un enregistrement, puis les modifier et les enregistrer dans le cadre de ces restrictions d’autorisation.
Solution
Lorsqu’un rôle d’utilisateur ne dispose que d’une autorisation de « consultation » pour un type d’enregistrement spécifique, le comportement suivant est observé dans SuiteScript 2.x :
Chargement d’un enregistrement : un script peut charger correctement un enregistrement à l’aide de la fonction N/record.load. Cette opération récupère toutes les données de champ accessibles pour l’enregistrement.
javascript
var recordId = 123; // Example record ID
var recordType = 'serviceitem'; // Example record type
var loadedRecord = record.load({
type: recordType,
id: recordId,
isDynamic: true // or false, depending on script needs
});
// The record object will be successfully populated.Enregistrement d’un enregistrement : toute tentative d’enregistrement ou de soumission de modifications apportées à l’enregistrement chargé à l’aide de la fonction N/record.save entraînera une erreur d’autorisation. L’autorisation « Affichage » restreint explicitement la modification ou la création d’enregistrements.
javascript
// Assuming 'loadedRecord' was obtained with 'View' permission
loadedRecord.setValue({
fieldId: 'memo',
value: 'Updated memo'
});
// This operation will fail with a permission error
loadedRecord.save();Ce comportement a été testé et confirmé avec l’autorisation « Affichage » accordée pour un type d’enregistrement « Élément » (par exemple, « Élément de service »).
Support expert NetSuite
Besoin d’aide pour cet enjeu NetSuite ?
Accompagnement-conseil et configuration pour Développement SuiteScript
