ANS-1628 · DéVELOPPEMENT SUITESCRIPT
Comment vérifier de manière fiable si des champs sont vides dans NetSuite SuiteScript ?
Assurez la robustesse de la logique du script en gérant de manière cohérente les valeurs de champ nulles ou les chaînes vides dans les différentes API NetSuite.
Solution courte
Pour vérifier en toute sécurité si un champ est vide dans NetSuite SuiteScript, vérifiez toujours à la fois les chaînes vides et les valeurs nulles. Utilisez `if (value !== '' && value !== null)` pour des comparaisons fiables, en tenant compte des incohérences potentielles dans la manière dont les différentes API SuiteScript 2.x renvoient les états vides. La version moderne de SuiteScript 2.1 prend également en charge la coalescence nullish (`??`) pour une attribution précise des valeurs par défaut.
Scénario
Les développeurs doivent souvent vérifier si un champ contient une valeur avant d’exécuter le code suivant. Par exemple, avant d’effectuer des calculs tels que la division d’un champ par un autre, il est essentiel de s’assurer que les deux champs contiennent des données valides afin d’éviter toute erreur.
Solution
Pour garantir une exécution fiable du code, il est essentiel de vérifier systématiquement si la valeur d’un champ est vide. Les API SuiteScript 2.x de NetSuite peuvent renvoyer des valeurs vides de manière incohérente : certaines fonctions renvoient une chaîne vide (''
) tandis que d’autres renvoient GA_KEEP_0002,
en fonction du type de champ ou du contexte (par exemple, N/currentRecord.getValue()
par rapport à N/record.lookupFields
). Par conséquent, pour vérifier en toute sécurité si un champ est vide, assurez-vous toujours que la valeur est soit une chaîne vide, soit null
.1. Récupérez la valeur du champ à l’aide d’une API SuiteScript 2.x :
javascriptvar value = currentRecord.getValue({ fieldId: 'your_field_id' }); // Example using N/currentRecordMettez en place une vérification conditionnelle à la fois pour la chaîne vide et la valeur null :
javascriptif (value !== '' && value !== null) { // Proceed with code, as the field has a non-empty value}Les bonnes pratiques JavaScript modernes dans SuiteScript 2.1 (prenant en charge les fonctionnalités ES2020) recommandent d’utiliser des opérateurs d’égalité stricte (===
, !==
) pour des comparaisons explicites tant de la valeur que du type. Pour gérer les valeurs null
ou undefined
et fournir des valeurs par défaut, l’opérateur de coalescence nullish (??
) offre une approche plus précise :
javascriptvar fieldContent = currentRecord.getValue({ fieldId: 'some_field' }) ?? 'Default Value';Cela garantit que fieldContent
ne sera « Valeur par défaut » que si getValue()
renvoie null
ou undefined
, et non pour d’autres valeurs fausses telles que 0
ou ''
.
Support expert NetSuite
Besoin d’aide pour cet enjeu NetSuite ?
Accompagnement-conseil et configuration pour Développement SuiteScript
