Prévenir la création de doublons

Prev Next

Introduction

Lorsqu’on saisit des données, il arrive parfois qu’un utilisateur ne sache pas qu’un enregistrement portant le même nom existe déjà dans la base de données. Cela peut entraîner la création de doublons, ce qui complique la gestion et la fiabilité des données. Pour remédier à ce problème, nous allons mettre en place une solution simple et efficace : un dialogue d’avertissement qui s’affichera seulement lorsqu’un enregistrement portant le même nom est détecté.

L’objectif final est de créer un système qui affiche un message d’avertissement lorsqu’un doublon potentiel est détecté, tout en laissant l’utilisateur juger si l’enregistrement doit être bloqué ou accepté. Cette méthode assure un meilleur contrôle des données et permet d’éviter les erreurs inutiles lors de la création d’enregistrements.

Étapes à suivre

1. Ajouter un dialogue à la commande de création

2. Configurer le message d’erreur à afficher

  1. Un champ doit être créé dans le dialogue et nommé « messageErreur ». Ce champ doit être positionné juste après le champ nom. Cet ordre est important, car il garantit que le message sera affiché directement sous le champ « nom » (voir la section Résultat Final).

  2. Dans la propriété ComponentId du nouveau champ, il faut ajouter la valeur @esm/components/web/MessageBar. Cela permet d’ajouter une boîte stylisée pour afficher le message.

  3. Ensuite, dans la propriété Props, une configuration en JavaScript doit être ajoutée comme suit :

return {description: "Un compte avec le même nom existe déjà,"type: 'warning'}

Le texte suivant « description » correspond au contenu du message, tandis que la propriété « type » définit le style de la boîte (par exemple, un style d’avertissement).

À ce stade, le message d’erreur sera affiché en tout temps.

3. Rendre le message visible uniquement en cas de doublon

Pour que le message apparaisse uniquement lorsqu’un doublon est détecté, la propriété de visibilité du champ « messageErreur » doit être modifiée en JavaScript avec l’expression suivante :

db.Compte.search({nom: {insensitiveEqual:  values.nom}}).length > 0 

Grâce à cette configuration, le dialogue s’affichera uniquement lorsqu’un enregistrement avec le même nom existe déjà.

(Optionnel) Bloquer la création d’enregistrements doublons

Dans certains cas, il peut être nécessaire d’empêcher la sauvegarde d’un enregistrement en cas de doublon. Cependant, cela peut varier selon le contexte. Par exemple, dans le cas de noms de clients, il peut s’agir de deux personnes différentes partageant le même nom. L’utilisateur devra donc exercer son jugement.

Pour bloquer la création d’un doublon, les options du dialogue doivent être modifiées pour inclure la condition suivante dans l’événement Can Submit :

return () => {
  return !db.Compte.search({nom: {insensitiveEqual: values.nom}}).length > 0;}

Conclusion

La mise en place d’un dialogue permettant d’alerter les utilisateurs en cas de doublons améliore la qualité des données et prévient les erreurs. En fonction des besoins, il est possible de bloquer ou de simplement signaler la création d’un doublon, laissant à l’utilisateur la décision finale.