Éviter les doubles réservations dans Salesforce
Une règle de validation ne voit pas les autres enregistrements. Cette seule limite explique pourquoi la plupart des systèmes de réservation Salesforce découvrent leurs conflits avec un jour de retard.
La double réservation est un problème de timing. Le temps que Salesforce standard puisse vous dire que la salle est prise, l'utilisateur l'a déjà choisie, a rempli le reste du formulaire et est passé à autre chose.
Pourquoi les outils évidents ne suffisent pas
| Outil | Ce qu'il sait faire | Pourquoi ça ne suffit pas |
|---|---|---|
| Règle de validation | Contrôler les champs de l'enregistrement en cours d'enregistrement | Ne peut interroger aucun autre enregistrement |
| Règle de doublon | Rapprocher des valeurs de champs identiques | 09:00–10:00 et 09:30–10:30 se chevauchent sans être identiques |
| Flux déclenché par un enregistrement | Interroger et bloquer à l'enregistrement | Intervient après la validation de l'utilisateur ; fragile en masse s'il est écrit naïvement |
| Code personnalisé | Contrôle total, logique de chevauchement correcte | Refuse toujours à l'enregistrement, et le code est désormais à votre charge |
Tous ont le même défaut : ils rejettent l'utilisateur après son choix. Même une solution sur mesure correcte finit par afficher « ce créneau est pris, veuillez réessayer », ce qui est pire que de ne jamais proposer le créneau.
Chevauchement n'est pas égalité
Les règles de doublon sont tentantes, alors voici la règle. Deux réservations sont en conflit quand l'une commence avant la fin de l'autre et se termine après son début. Une réservation de 09:00 à 10:00 et une autre de 09:30 à 10:30 se chevauchent d'une demi-heure sans partager une seule valeur de champ. Toute approche fondée sur des valeurs identiques passera à côté, à chaque fois.
Conflit et capacité sont deux problèmes différents
On les confond souvent.
Un conflit
Deux demandes pour une ressource qui n'en accepte qu'une. Une salle, un recruteur, un véhicule.
Capacité
Une ressource qui en accepte plusieurs. La question est combien de places restent. Un cours de vingt places, une garde qui demande quatre infirmiers, un espace de soixante postes de travail.
Traiter une ressource à capacité comme une ressource à conflit, c'est ne jamais pouvoir réserver la deuxième personne. Traiter une ressource à conflit comme une capacité de un fonctionne en théorie, mais vous perdez les compteurs sur lesquels vous voudrez sans doute faire des rapports.
Trois comportements raisonnables
« Bloquer » n'est pas toujours la bonne réponse. Quand quelqu'un sélectionne douze dates et que deux sont en conflit, rejeter toute la saisie est brutal. Un bon système laisse le choix :
Bloquer
Refuser l'enregistrement et signaler le conflit. Le bon choix quand chaque date compte.
Ignorer
Enregistrer les dix dates libres, signaler les deux qui ne l'étaient pas. En général, le choix le plus humain pour une sélection en masse.
Autoriser
Accepter le chevauchement en connaissance de cause. Certaines entreprises surréservent volontairement.
La vraie solution intervient plus tôt
Tous les mécanismes ci-dessus agissent au moment de l'enregistrement. La solution consiste à déplacer le contrôle au moment de la sélection : interroger l'existant au chargement du calendrier, l'afficher sur la grille et ne jamais proposer un créneau déjà pris. Les contrôles à l'enregistrement restent en filet de sécurité pour le vrai cas de concurrence où deux personnes regardent le même créneau libre, mais ils ne sont plus la première ligne de défense.
Arrêtez les doubles réservations au moment du choix
Réservez un créneau dans la démo en direct et regardez les horaires pris disparaître de la grille.
- $20/utilisateur/mois, toutes les fonctionnalités
- Essai gratuit de 30 jours, sans carte
- 100 % natif Salesforce
- Sans Apex
- Bientôt disponible sur Salesforce AppExchange