ANS-1201 · DéVELOPPEMENT SUITESCRIPT
Comment gérer les résultats « NaN » générés par la fonction parseFloat dans NetSuite SuiteScript ?
Une fonction utilitaire JavaScript personnalisée permet d’uniformiser l’analyse des valeurs numériques dans NetSuite SuiteScript en convertissant les résultats NaN en zéro, garantissant ainsi une gestion robuste des données.
Solution courte
Bien que l’environnement SuiteScript de NetSuite utilise le comportement standard de la fonction parseFloat de JavaScript, qui renvoie NaN pour les entrées null, undefined ou les chaînes vides, il est possible d’implémenter une fonction utilitaire personnalisée. Cette fonction vérifie la présence de résultats NaN et les convertit en 0, garantissant ainsi une sortie numérique cohérente pour les calculs.
Scénario
Les développeurs sont souvent confrontés à des situations où la fonction parseFloat renvoie la valeur NaN (Not-a-Number) lors du traitement de diverses valeurs de champ dans NetSuite SuiteScript. Cela peut se produire avec des entrées nulles, indéfinies ou sous forme de chaîne vide, ce qui entraîne des erreurs de calcul inattendues ou des échecs de script. Bien que la fonction parseFloat gère correctement les signes de pourcentage en extrayant la valeur numérique, une solution robuste est nécessaire pour les entrées non numériques.
Solution
La fonction JavaScript standard parseFloat, utilisée dans NetSuite SuiteScript, présente des comportements spécifiques lors de l'analyse de différents types d'entrée. Par exemple, parseFloat('55,05 %') renverra correctement 55,05. Cependant, lorsque parseFloat rencontre une valeur null, undefined ou une chaîne vide (''), elle renvoie NaN (Not-a-Number).
Pour éviter les résultats NaN et garantir un résultat numérique, une fonction utilitaire personnalisée peut être mise en œuvre. Cette fonction vérifie si la valeur analysée est NaN et, le cas échéant, la remplace par 0 par défaut.
Voici un exemple d’une telle fonction personnalisée :
function forceParseFloat(valueToParse) {
var parsedValue parseFloat(valueToParse);
if (isNaN(parsedValue)) {
parsedValue 0;
}
return parsedValue;
}. Cette fonction personnalisée forceParseFloat garantit que les entrées telles que null, undefined et '' (chaîne vide), qui donneraient généralement NaN si elles étaient transmises directement à parseFloat, renverront à la place 0. Cela permet d’obtenir une valeur numérique cohérente pour les calculs ultérieurs.
Support expert NetSuite
Besoin d’aide pour cet enjeu NetSuite ?
Accompagnement-conseil et configuration pour Développement SuiteScript
