Règle de validation : la fonction Regex sur Salesforce

Règle de validation : la fonction Regex sur Salesforce

Règle de validation : la fonction Regex sur Salesforce

Les règles de validation aident à améliorer la qualité des données en empêchant les utilisateurs d’enregistrer des données incorrectes. Ces règles de validation s’appuient sur différentes fonctions dont une en particulier (Regex), qui fait l’objet de cette présentation.

Contexte et objectif

Nous allons nous intéresser ici au bon formatage d’un numéro de téléphone. L’objectif ne consiste pas à définir le meilleur format de téléphone à utiliser mais à manipuler la fonction Regex de Salesforce.

Afin d’avoir des données téléphoniques cohérentes, il va falloir choisir sous quel format devront être stockés les numéros de téléphone. Les possibilités sont multiples : 0123456789, 01.23.45.67.89, 01 23 45 67 89, +33 (0) 1 23 45 67 89…

Nous souhaitons par exemple que les téléphones français soient saisis au format « XX XX XX XX XX » et que les numéros étrangers le soient au format « +XX (0) XXX XXX XX.. ».
Le nombre de chiffres pouvant varier d’un pays à l’autre (10 chiffres après le 0 pour le royaume uni, 9 pour la Suisse, 8 pour la Belgique), le dernier bloc de chiffres d’un numéro étranger contiendra au minimum 2 chiffres mais pourra atteindre 3 ou 4 chiffres.

Mise en application de la fonction Regex

Créer une règle de validation sur le téléphone d’un contact avec le code suivant (via le menu de configuration Personnaliser | Contacts | Règle de validation) :

NOT (
   OR (
      ISBLANK(Phone),
      REGEX(Phone, « [0-9]2 [0-9]2 [0-9]2 [0-9]2 [0-9]2 »),
      REGEX(Phone, « [+][0-9]2 [(]0[)] [0-9]3 [0-9]3 [0-9]2,4 »)
   )
)

règle validation regex Salesforce

Ainsi, la saisie d’un téléphone ne respectant pas le format désiré générera le message d’erreur suivant :

regex erreur format

Explications

La première clause ISBLANK(Phone) permet de laisser la possibilité de ne pas renseigner de numéro de téléphone.

La fonction Regex est utilisée dans les 2 clauses suivantes, une première fois pour contrôler les numéros français, une seconde pour les numéros étrangers.
Elle fait appel à 2 paramètres : la chaine à contrôler et l’expression régulière (d’où le terme Regex) à respecter.

Le motif du numéro français consiste à regrouper 5 blocs de 2 chiffres séparés par un espace. [0-9] correspond à un caractère numérique et 2 indique qu’il doit se répéter 2 fois.

Le motif du numéro étranger est un peu plus compliqué.
Il débute par le caractère spécial +, qu’il faut mettre entre crochets. Puis s’en suit l’indicatif de 2 chiffres [0-9]2 ainsi que la séquence (0) contenant les parenthèses qui sont aussi des caractères spéciaux (à mettre entre crochets).
Pour le reste, il faut que les 2 premiers blocs de chiffres soient regroupés par 3, d’où le [0-9]3, puis préciser que le dernier bloc doit être constitué de 2 à 4 chiffres, ce qui se matérialise par [0-9]2,4.

Cet exemple donne un aperçu de l’utilisation de la fonction Regex. Pour aller plus loin, le lien suivant détaille la syntaxe de Regex :
http://docs.oracle.com/javase/6/docs/api/java/util/regex/Pattern.html

N.B. : le caractère \ (backslash) étant un caractère d’échappement dans Salesforce, celui-ci doit être remplacé par 2 backslashes \.