ANS-0415 · DéVELOPPEMENT SUITESCRIPT

Comment masquer des champs NetSuite tout en conservant l’accès aux scripts

NetSuite propose plusieurs méthodes pour masquer des champs dans les enregistrements, notamment la configuration de l'interface utilisateur et l'utilisation de scripts, chacune ayant des implications spécifiques selon les types de champs et les contextes de script.

Solution courte

Les champs NetSuite peuvent être masqués via la personnalisation des formulaires ou SuiteScript. Lorsqu’un champ dépend d’un script mais doit rester invisible, la méthode à utiliser dépend du type de champ (corps ou colonne) et du contexte du script (côté serveur ou côté client). Les scripts côté serveur permettent de masquer des champs par programmation, tandis que les interactions côté client avec des champs masqués nécessitent une attention particulière.

Scénario

Les utilisateurs de NetSuite sont souvent confrontés à des situations où un champ d’un enregistrement est essentiel au bon fonctionnement d’un script, mais ne doit pas être visible par les utilisateurs finaux. Il peut s’avérer difficile de déterminer la méthode optimale pour masquer ces champs tout en garantissant que les scripts puissent continuer à interagir efficacement avec eux, car les différents types de champs et contextes de script présentent des comportements variés.

Solution

NetSuite propose deux méthodes principales pour masquer des champs dans un enregistrement :n

  1. Masquer le champ directement dans le formulaire à l’aide de la personnalisation de l’interface utilisateur.n

  2. Masquer le champ par programmation à l’aide de SuiteScript.

    Lorsqu’un script interagit avec un champ qui doit être masqué de l’interface utilisateur, la méthode appropriée dépend du type de champ et du contexte d’exécution du script (côté serveur ou côté client).

    Exemples SuiteScript 2.x pour masquer des champs :

    Pour les champs du corps (côté serveur – événement utilisateur/Suitelet) :n

javascriptn// Assuming 'scriptContext.form' is available in a User Event or Suitelet scriptnscriptContext.form.getField({ id: 'FIELDID' }).updateDisplayType({ displayType: serverWidget.FieldDisplayType.HIDDEN });n

Pour les champs du corps (côté client – N/currentRecord) :n

javascriptn// Assuming 'currentRecord' is an instance of N/currentRecord in a Client ScriptncurrentRecord.getField({ fieldId: 'FIELDID' }).isDisplay = false;n

Pour les champs de colonne de sous-liste (côté serveur - Événement utilisateur/Suitelet) :n

javascriptn// Assuming 'scriptContext.form' is available in a User Event or Suitelet scriptn// Example for 'item' sublist and 'custcol_mycolumnid' columnnvar sublist = scriptContext.form.getSublist({ id: 'item' });nif (sublist) {n    var columnField = sublist.getColumn({ id: 'custcol_mycolumnid' });n    if (columnField) {n        columnField.updateDisplayType({ displayType: serverWidget.FieldDisplayType.HIDDEN });n    }n}n

Recommandations concernant les champs utilisés par les scripts :

Pour les champs du corps :

La personnalisation des formulaires et les scripts peuvent tous deux être utilisés pour masquer les champs du corps. Les scripts conserveront la possibilité de définir et de lire les valeurs de ces champs, quelle que soit la méthode de masquage utilisée.

Pour les champs de colonne de sous-liste :

Pour les scripts côté serveur (événement utilisateur, Suitelet, RESTlet, mise à jour en masse) :

Les champs de colonne de sous-liste peuvent être masqués à l’aide de scripts. Les scripts côté serveur resteront capables de définir et de lire la valeur du champ.

Pour les scripts côté client :

Dans le cas des scripts côté client, le masquage direct des champs de colonne de sous-liste à l’aide d’API côté client est plus complexe et plus limité. La propriété isDisplay

pour les champs de sous-liste n’est pas disponible en mode dynamique et est en lecture seule dans le module N/currentRecord

. Par conséquent, si un champ de colonne de sous-liste doit être masqué tout en restant accessible à un script côté client, il est généralement recommandé de masquer ce champ via la personnalisation du formulaire ou un script côté serveur (par exemple, un script d’événement utilisateur).

Support expert NetSuite

Besoin d’aide pour cet enjeu NetSuite ?

Accompagnement-conseil et configuration pour Développement SuiteScript

Parler à un consultant