ANS-0616 · DéVELOPPEMENT SUITESCRIPT

Comment comparer avec précision les champs de zone de texte NetSuite dans SuiteScript ?

Ce guide présente une méthode SuiteScript permettant de comparer avec précision le contenu des champs de zone de texte, tels que les adresses, en normalisant les chaînes de caractères à l'aide d'expressions régulières.

Solution courte

Pour comparer avec précision les champs de zone de texte NetSuite dans SuiteScript, utilisez une expression régulière afin de supprimer tous les espaces et les caractères potentiellement invisibles, tels que le caractère d’interrogation (x05). Cette normalisation garantit que de légères différences de mise en forme n’empêchent pas une comparaison correcte du contenu textuel sous-jacent.

Scénario

Lors de la comparaison du contenu des champs de zone de texte dans NetSuite, tels que les adresses de livraison figurant dans la fiche client, la comparaison directe des chaînes de caractères peut s’avérer peu fiable en raison des variations au niveau des espaces ou de la présence de caractères invisibles. Cela peut entraîner des faux négatifs lorsque vous tentez de déterminer si deux champs de texte contiennent les mêmes informations.

Solution

Pour comparer avec précision des champs de zone de texte, tels que les adresses de livraison d’une fiche client, une technique SuiteScript éprouvée consiste à normaliser les chaînes de caractères avant la comparaison. Cette méthode tient compte des variations au niveau des espaces et autres caractères invisibles qui pourraient sinon entraîner des divergences. Dans l’exemple suivant, newRecordShipAddress et oldRecordShipAddress sont des objets, et leurs propriétés .text respectives contiennent les chaînes de caractères à comparer.

Commencez par définir une expression régulière ciblant les espaces et le caractère d’interrogation :

javascript
var REGEX_REMOVE_SPACES_AND_ENQUIRY = /s|x05/g;

L’expression régulière REGEX_REMOVE_SPACES_AND_ENQUIRY est conçue pour supprimer tous les espaces (s) et, afin de garantir une comparaison cohérente, les caractères non visibles potentiellement présents, tels que le caractère d’interrogation (x05). Bien que la présence automatique du caractère d’interrogation puisse varier en fonction de la configuration des champs ou de la version de NetSuite, sa suppression permet de normaliser les chaînes de caractères afin d’assurer une comparaison précise.

Traitez ensuite le texte du nouvel enregistrement :

javascript
var trimmedNewShipAddress = '';
if (newRecordShipAddress.text != null) {
        trimmedNewShipAddress = newRecordShipAddress.text.replace(REGEX_REMOVE_SPACES_AND_ENQUIRY, '');
}

De même, traitez le texte de l’ancien enregistrement :

javascript
var trimmedOldShipAddress = '';
if (oldRecordShipAddress.text != null) {
        trimmedOldShipAddress = oldRecordShipAddress.text.replace(REGEX_REMOVE_SPACES_AND_ENQUIRY, '');
}

Ces chaînes de caractères nettoyées peuvent alors être utilisées pour une comparaison fiable.

Support expert NetSuite

Besoin d’aide pour cet enjeu NetSuite ?

Accompagnement-conseil et configuration pour Développement SuiteScript

Parler à un consultant