Vérifier un numéro de téléphone lors de sa saisie

Dans Microsoft CRM 4.0, il n'existe pas nativement de contrôles évolués de saisie. Une façon simple de le faire est de créer un script dans le formulaire de saisie de l'entité. 

Pour cela, allez dans :

  • Settings -> Customization -> Customize entities
  • Sélectionnez l'entité à modifier
  • Allez dans Forms and Views
  • Sélectionner Form
  • Sélectionner le champs à contrôler
  • Cliquez sur Change Properties
  • Dans l'onglet Name, bien regarder la valeur du champ Name. Il faudra l'utiliser dans le script ci dessous
  • Aller dans l'onglet Events, cliquer sur Edit
  • Activez la case "Event is enabled"
  • Copiez le script ci dessous et remplacez telephone1 par le nom de votre champ. Ce script vérifie les numéros au format international (+xxxx xxxxxxxxxxxxxx)
if (crmForm.all.telephone1 != null)
{
    if (crmForm.all.telephone1.DataValue != null)
   {
       var sphone=crmForm.all.telephone1.DataValue;
       checkPhone(sphone);

       function checkPhone( phone ) { 
           var regex = /^\+\d{1,4}\s{1}\d{6,14}$/
           if( !phone.match( regex ) ) {
                alert( "Merci de saisir le numéro de téléphone dans le format suivant +xxxx xxxxxxxxxxxxxx (indicatif au format + suivit de 1 à 4 chiffres puis entre 6 et 14 chiffres pour le numéro)");
                return false;
          }
          return true;
       }
   }
}

  • Et dans l'onglet Dependencies, ajoutez une dépendancesur le champs, pour prévenir une erreur en cas de tentative de suppression de ce champ (attention, c'est le Display Name et non plus le Name qui est utilisé ici).
Si vous souhaitez modifier l'expression régulière (regex) pour avoir un autre format (formatr national par exemple), vous pouvez utiliser l'outil d'Ultrapico Expresso 3.0