Guide de l'utilisateur MultiDatePick
Chaque composant, chaque paramètre et chaque piège, dans l'ordre où un administrateur les rencontre. Aucun Apex requis.
Sommaire
- Les trois composants
- Formes d'enregistrement
- Présentation de l'assistant de configuration
- Ensembles d'autorisations & accès
- Click to Save ou enregistrement géré par le flux
- Couleurs de statut & mode édition
- Vues : cinq mises en page, un composant
- Réservation de ressources & capacité
- Limiter ce que les utilisateurs sélectionnent
- Bloquer des dates, des heures & des ressources
- Pages publiques pour invités
- Pièges fréquents (FAQ)
- Recettes de flux
- Correspondance des objets & champs
- Référence de toutes les propriétés
- Sécurité & accessibilité
- Questions / bugs
1. Les trois composants : lequel utiliser
MultiDatePick fournit trois Lightning Web Components sur une base commune. Choisissez celui qui correspond à vos données.
Date
Dans les générateurs : MultiDatePick - Dates
Sélectionnez plusieurs dates d'un coup. Idéal pour les inscriptions, les présences, les congés, les dates d'interdiction et les calendriers de jours fériés.
Date Time
Dans les générateurs : MultiDatePick - Dates & Times
Des dates et des créneaux horaires. Idéal pour les cours, les rendez-vous, les sessions de formation et les postes de travail.
Booking
Dans les générateurs : MultiDatePick - Resource Booking
Des dates, des heures et une ressource. Idéal pour les salles, les équipements, les personnes et tout ce qui a une capacité.
Comparaison des fonctionnalités
Les fonctionnalités s'additionnent. Tout ce que propose Date se retrouve dans Date Time et Booking. Date Time ajoute les heures. Booking ajoute les ressources et la capacité.
| Fonctionnalité | Date | Date Time | Booking |
|---|---|---|---|
| Disponible sur les trois composants | |||
| Sélection de dates | ✓ | ✓ | ✓ |
| Cinq vues | ✓ | ✓ | ✓ |
| Couleurs de statut | ✓ | ✓ | ✓ |
| Dates bloquées | ✓ | ✓ | ✓ |
| Chargement des enregistrements existants | ✓ | ✓ | ✓ |
| Mode édition | ✓ | ✓ | ✓ |
| Récurrences | ✓ | ✓ | ✓ |
| Date Time & Booking uniquement | |||
| Créneaux horaires | ✓ | ✓ | |
| Enregistrements de sous-blocs | ✓ | ✓ | |
| Booking uniquement | |||
| Sélecteur de ressource | ✓ | ||
| Badges de capacité | ✓ | ||
2. Formes d'enregistrement : laquelle utiliser
Une forme d'enregistrement décrit comment une sélection devient des enregistrements. Elle résulte de trois choix indépendants, et toutes les combinaisons fonctionnent.
Date : uniquement des dates, sans heures.
Date Time / Booking : chaque enregistrement a une heure de début et une heure de fin.
En option : activez Consolidate Time Span (Regrouper la durée) pour obtenir un enregistrement parent sur toute la plage horaire, plus un enfant sous-bloc pour chaque intervalle à l'intérieur.
Aucune : Date, Date Time ou Booking sans ressource.
Ressource unique : Booking avec une liste déroulante de ressources.
Plusieurs ressources : Booking avec des cases à cocher, un enregistrement par ressource cochée.
Par clic : chaque date sélectionnée devient son propre enregistrement. Cinq clics, cinq enregistrements.
Par plage : les dates consécutives deviennent un seul enregistrement avec un début et une fin. Renseignez End Date Field API Name.
L'assistant de configuration nomme six formes : un enregistrement par date, un par plage de dates, un par bloc horaire, parent plus sous-blocs, ressource unique et plusieurs ressources.
Exemples concrets : répondez aux 3 questions
Répondez à trois questions par scénario pour trouver la bonne forme. L'assistant de configuration pose les trois mêmes.
Demande de congés
Avez-vous besoin d'heures ? Non, uniquement des dates.
Avez-vous besoin d'un sélecteur de ressource ? Non.
Les dates adjacentes doivent-elles être regroupées ? Oui. Des congés du lundi au vendredi doivent former UN seul enregistrement.
→ Par plage : un enregistrement, début lundi, fin vendredi.
Réservation de salle de réunion
Avez-vous besoin d'heures ? Oui, chaque réservation a un début et une fin.
Avez-vous besoin d'un sélecteur de ressource ? Oui, pour choisir une salle.
Les dates adjacentes doivent-elles être regroupées ? Non, chaque réservation est son propre enregistrement.
→ Ressource unique : un enregistrement par date × bloc horaire, lié à la salle.
Formation dans 3 salles
Avez-vous besoin d'heures ? Oui, le même début et la même fin chaque jour.
Avez-vous besoin d'un sélecteur de ressource ? Oui, plusieurs salles avec des cases à cocher.
Les dates adjacentes doivent-elles être regroupées ? Oui, elle dure du lundi au vendredi.
→ Plusieurs ressources, par plage : un enregistrement par salle couvrant toute la semaine.
Formation d'une journée avec pause déjeuner
Avez-vous besoin d'heures ? Oui, de 9 h à 17 h avec une pause déjeuner.
Avez-vous besoin d'un sélecteur de ressource ? Non.
La pause doit-elle être suivie ? Oui, comme son propre enregistrement enfant.
→ Parent plus sous-blocs : un parent de 9 h à 17 h, un sous-bloc pour le déjeuner.
La grille : toutes les combinaisons
Choisissez la ligne selon vos besoins en heures et en ressources. La colonne dépend du fait que End Date Field API Name soit renseigné ou non. Chaque case correspond à une configuration valide.
| Heure + ressource | Par clic (sans End Date Field) |
Par plage (End Date Field renseigné) |
|---|---|---|
| Date Sans heure. Composant Date. |
Un enregistrement par date 1 date → 1 enregistrement. Pour : inscriptions, présences, pointages quotidiens. |
Un enregistrement par plage de dates Dates consécutives → 1 enregistrement avec début et fin. Pour : congés, déplacements, séjours de plusieurs nuits. |
| Date Time Un bloc horaire par enregistrement. Composant Date Time. |
Un enregistrement par bloc horaire 1 date × 1 bloc horaire = 1 enregistrement. Pour : feuilles de temps, segments de poste, sessions de formation. |
Plage avec un bloc horaire commun. Dates consécutives aux mêmes heures → 1 enregistrement. Pour : une formation de plusieurs jours aux mêmes horaires chaque jour. |
| Date Time + Consolidate Time Span Enregistrement parent plus enfants sous-blocs pour les intervalles |
Parent plus sous-blocs Un parent couvre toute la plage horaire. Chaque intervalle à l'intérieur devient un enfant sous-bloc. Pour : formations avec pauses déjeuner, tournées terrain avec trajets entre les arrêts. |
|
| Booking, ressource unique Une liste déroulante de ressources. Composant Booking. |
Ressource unique 1 enregistrement par date × bloc horaire, lié à la ressource. Pour : salles de réunion, planning des formateurs. |
Plage sur une ressource unique. Dates consécutives sur une ressource → 1 enregistrement par plage. Pour : séjours de plusieurs nuits dans une chambre, prêt de matériel sur plusieurs jours. |
| Booking, plusieurs ressources Cases à cocher de ressources (Allow Multiple Resources) |
Plusieurs ressources 1 enregistrement par ressource × date × bloc horaire. Pour : réunions d'équipe en parallèle, formations dans plusieurs salles. |
Plage sur plusieurs ressources. Dates consécutives sur N ressources → N enregistrements, un par ressource. Pour : une semaine de formation dans 3 salles à la fois. |
| Booking + Consolidate Time Span Réservation parente plus enfants sous-blocs pour les intervalles |
Réservation parente plus sous-blocs. Une ressource réservée toute la journée, avec ses pauses enregistrées. Pour : équipements de laboratoire avec fenêtres de maintenance. |
|
En résumé : toute combinaison des trois choix fonctionne. Si votre scénario ne correspond à aucun modèle nommé, réglez chaque choix séparément et le composant fait le reste.
3. Présentation de l'assistant de configuration
L'assistant de configuration enregistre une configuration une seule fois. Saisissez son nom dans Config Name sur n'importe quelle page ou n'importe quel écran de flux, et cet emplacement l'utilise. Modifiez la configuration et tous les emplacements suivent.
- 1 Nom & type
- 2 Objet & champs
- 3 Champs temporels
- 4 Statut & affichage
- 5 Vérifier & enregistrer
Choisir un point de départ
L'onglet Créer propose deux parcours. Guidez-moi pose trois questions et choisit le composant et la forme. Configurer toutes les propriétés ouvre tous les paramètres. Deux autres onglets se trouvent à côté : Configurations existantes pour modifier une configuration enregistrée, et Importer pour en coller une depuis la Config Library.
Étape 1 : Nom & type
Choisissez le composant (Date, Date Time ou Booking) et nommez la configuration. Ce nom est celui que vous saisirez ensuite dans Config Name. Cette étape définit aussi les vues : la vue par défaut, les vues proposées par le sélecteur, et les options de la Chronologie et de l'Agenda.
Étape 2 : Objet & champs
L'étape principale. Choisissez l'objet qui contient les enregistrements, son champ date et le champ de relation vers le parent. Des champs facultatifs ajoutent les plages, les ressources, la capacité, les sous-blocs et les dates bloquées. Les configurations Booking définissent aussi ici l'objet ressource, le champ de capacité et les heures ouvrables.
Étape 3 : Champs temporels
Date Time et Booking uniquement. Associez les champs d'heure de début et de fin, puis définissez l'intervalle horaire (tout intervalle fonctionne ; 15, 30 ou 60 minutes sont courants), l'heure la plus tôt et la plus tardive, le mode d'affichage et ce qui se passe en cas de conflit.
Étape 4 : Statut & affichage
Champ de statut et couleurs, statuts à masquer, statuts que les utilisateurs peuvent choisir, champs au survol, mode édition, nom des enregistrements, libellés des boutons, taille du calendrier et limites comme Max Dates Allowed.
Étape 5 : Vérifier & enregistrer
Vérifiez le récapitulatif, essayez l'aperçu en direct, puis cliquez sur Enregistrer la configuration. L'assistant déploie la configuration pour vous en 30 à 60 secondes. Ajoutez une description facultative à la fin.
Configurations existantes et import
Les configurations enregistrées sont listées dans Configurations existantes : cliquez sur l'une d'elles pour la modifier ou l'exporter. L'onglet Importer accepte le JSON de n'importe quelle carte de la Config Library, ou un export provenant d'une autre org.
4. Ensembles d'autorisations & accès
Le package fournit quatre ensembles d'autorisations. Attribuez-les dans Configuration, Ensembles d'autorisations.
| Ensemble d'autorisations | Pour qui | Assistant de configuration | Utiliser les calendriers |
|---|---|---|---|
| MultiDatePick - Setup | Les administrateurs qui créent les configurations | ✓ Oui | Non |
| MultiDatePick - User | Tous ceux qui utilisent les calendriers | Non | ✓ Oui |
| MultiDatePick - All Access | Les administrateurs qui les créent et les utilisent | ✓ Oui | ✓ Oui |
| MultiDatePick - Guest | L'utilisateur invité d'un site Experience Cloud public | Non | ✓ Consulter et réserver |
Les composants s'exécutent avec les autorisations de chaque utilisateur. Les utilisateurs doivent donc aussi avoir accès à vos objets et champs :
- Objets : Lecture et Création sur l'objet où les enregistrements sont sauvegardés, plus Lecture sur chaque objet ressource, fermeture ou enfant que lit le calendrier.
- Champs, lecture : chaque champ affiché par le calendrier (date, statut, champs au survol).
- Champs, modification : chaque champ qu'il écrit (date, heures, statut, seconde liste de sélection, champ nom, référence au parent). Un champ que l'utilisateur ne peut pas modifier fait échouer l'enregistrement, même si la lecture fonctionne.
- Enregistrements référencés : au moins Lecture sur le parent et la ressource vers lesquels pointe le nouvel enregistrement.
Chaque message d'erreur et sa cause figurent dans Dépannage : erreurs d'accès. Les sites invités demandent quelques étapes de plus : voir Pages publiques pour invités.
5. Click to Save ou enregistrement géré par le flux
Il existe deux façons d'enregistrer. Choisissez celle qui convient à l'emplacement.
Click to Save
Le composant écrit lui-même les enregistrements. Renseignez quatre paramètres et son propre bouton Enregistrer apparaît. Un clic et les enregistrements enfants sont créés. Aucun élément de flux, aucun code.
À utiliser sur : pages d'enregistrement, pages d'application, pages d'accueil, sites Experience et écrans de flux disposant d'un enregistrement parent.
Enregistrement géré par le flux
Le composant transmet la sélection à votre flux. Utilisez l'action incluse Parse Date Entries from JSON, puis vos propres éléments Boucle et Créer des enregistrements.
À utiliser sur : les écrans de flux où vous voulez un contrôle total : approbations, enregistrements conditionnels, validations supplémentaires.
Click to Save : les quatre paramètres
L'assistant de configuration les renseigne. Quand les quatre ont une valeur, le bouton Enregistrer apparaît.
| Paramètre | Contenu | Nom d'API |
|---|---|---|
| Child Object API Name | L'objet où les enregistrements sont sauvegardés | relatedObjectApiName |
| Date Field API Name | Le champ date de cet objet | dateFieldApiName |
| Relationship Field API Name | La référence vers l'enregistrement parent | relationshipFieldApiName |
| Parent Record Id ou Static Parent Record Id | Le parent. Renseigné automatiquement sur une page d'enregistrement. Dans un flux, liez Parent Record Id. Sur les pages d'application, d'accueil et Experience, saisissez l'Id dans Static Parent Record Id. | recordId / staticRecordId |
Quel enregistrement parent une page utilise, et quand le choisir plutôt dans un flux, est expliqué dans Pages d'application, d'accueil & Experience.
Enregistrement géré par le flux : les sorties
Laissez les quatre paramètres vides. Le bouton Enregistrer se masque et la sélection sort par ces sorties de flux :
| Sortie | Contenu | Composants |
|---|---|---|
| Selected Dates (Output) | Une collection texte de dates (YYYY-MM-DD) | Date, Date Time |
| Date Ranges JSON (Output) | Les dates consécutives regroupées en plages | Date, Date Time |
| Dates With Times JSON (Output) | Chaque date avec ses heures | Date Time |
| Successful Bookings Count / Conflict Dates | Les résultats après l'enregistrement propre à Booking | Booking |
Transmettez le JSON à Parse Date Entries from JSON. L'action renvoie une liste que vous pouvez parcourir avec une Boucle, avec sur chaque élément une date de début, une date de fin, une heure de début, une heure de fin et l'Id de la ressource. Pas à pas : Recettes de flux.
L'enregistrement ne fait qu'ajouter
Click to Save ne fait que créer de nouveaux enregistrements. Désélectionner une date ne supprime jamais un enregistrement sauvegardé : un mauvais clic ne peut donc pas faire perdre de données. Pour modifier ou supprimer des enregistrements, utilisez le mode édition ou la liste associée.
6. Couleurs de statut & mode édition
Couleurs de statut et filtrage
Colorez les enregistrements selon n'importe quelle liste de sélection de votre objet, masquez certaines valeurs et limitez ce que les utilisateurs finaux peuvent choisir.
| Paramètre | Rôle | Nom d'API |
|---|---|---|
| Status Field | La liste de sélection qui pilote les couleurs, par exemple Confirmed / Tentative / Cancelled. | statusField |
| Status Colors | Une couleur par valeur, comme Confirmed:#22C55E, Tentative:#fbbf24. Laissez vide pour une palette automatique. | statusColors |
| Status Color Display | Où les couleurs s'affichent : calendrier, grille ou les deux. Laissez vide pour une page client épurée, sans couleurs. | statusColorDisplay |
| Ignored Statuses | Masque les enregistrements ayant ces valeurs (par exemple No-Show,Cancelled) dans le calendrier et dans le calcul de la capacité. | hideBookingsWithStatus |
| Selectable Statuses | Limite les valeurs qu'un utilisateur final peut choisir, par exemple uniquement Requested, alors que le personnel les voit toutes. | selectableStatuses |
Mode édition
Activez Enable Edit Mode (Activer le mode édition) et un bouton Modifier apparaît. En mode édition, les utilisateurs peuvent :
- Voir les enregistrements existants sous forme de cartes avec leur date et leur statut
- Cliquer sur des dates pour ajouter leurs enregistrements à la sélection à modifier
- Changer la date, les heures, la ressource ou le statut : l'enregistrement est mis à jour
- Supprimer avec une confirmation en deux clics, pour que rien ne parte par accident
7. Vues : cinq mises en page, un composant
Chaque composant propose cinq mises en page. Elles lisent les mêmes enregistrements avec les mêmes correspondances de champs, appliquent les mêmes règles de conflit, dates bloquées et heures ouvrables, et enregistrent de la même façon. Changer de vue change l'apparence des enregistrements, jamais leur signification.
Les cinq vues, et la question à laquelle chacune répond
| Vue (View) | La question | Mise en page | Modifiable ? |
|---|---|---|---|
| Calendrier | Que se passe-t-il le 14 ? | Un mois à la fois, couleurs de statut par jour. | Oui. Vue par défaut. |
| Chronologie | Quelle ressource est libre, et quand ? | Les ressources sur le côté, les dates en haut. Les enregistrements de plusieurs jours s'affichent en une seule barre. | Oui |
| Semaine | Qui est disponible jeudi à 14 h ? | Sept jours en colonnes, les heures ouvrables en lignes. Faites glisser sur plusieurs jours et plusieurs heures à la fois. | Oui |
| Occupation | Qui dépasse sa capacité ? | Une heatmap de la capacité utilisée, par ressource et par jour. | Non, lecture seule |
| Agenda | Quelle est la suite ? | La liste chronologique des 60 prochains jours. | Non, lecture seule |
Paramètres
| Paramètre | Par défaut | Rôle |
|---|---|---|
| Viewview | Calendrier | La mise en page affichée à l'ouverture du composant. |
| Available ViewsavailableViews | vide | Les vues proposées par le sélecteur, par exemple calendar,timeline,agenda. Vide, il propose les cinq. Votre vue par défaut est toujours incluse : ne listez que les vues en plus. |
| Timeline Window (Days)timelineWindowDays | 14 | Le nombre de jours affichés à la fois dans la Chronologie. Sur un mois entier, chaque réservation ne fait qu'une vingtaine de pixels de large et son libellé est coupé. Mettez 0 pour afficher le mois complet. Les flèches intérieures avancent d'une fenêtre, les flèches extérieures d'un mois. |
| Resource RowsresourceViewFilter | all | booked n'affiche que les ressources qui ont une réservation dans la période visible. C'est la meilleure façon de raccourcir une longue liste, car une ligne vide n'apporte aucune information. Si rien n'est réservé nulle part, toutes les ressources réapparaissent. |
| Max View ResourcesmaxViewResources | 0 (toutes) | Limite le nombre de lignes de ressources que la Chronologie et l'Occupation affichent, les plus chargées en premier. Tout reste compté. Préférez Resource Rows, qui ne masque que les lignes vides. |
| Agenda FieldsagendaFields | vide | Jusqu'à quatre champs supplémentaires sur chaque ligne de l'Agenda. Vide, il reprend Hover Popover Fields. La date, l'heure et le nom figurent déjà sur la ligne. |
| Capacity FieldcapacityField | vide | Ce n'est pas un paramètre de vue, mais l'Occupation en a besoin pour afficher des pourcentages plutôt que des nombres bruts. |
Une vue différente sur chaque page
La vue se règle sur chaque emplacement : les mêmes enregistrements peuvent donc avoir une apparence différente selon l'endroit où ils s'affichent. Une seule installation, un seul jeu de correspondances de champs.
| Emplacement | Vue (View) | Vues disponibles (Available Views) |
|---|---|---|
| Page d'entretiens du recruteur | Semaine | calendar,agenda |
| Page de réservation de salles des services généraux | Calendrier | timeline,utilization |
| Planning du responsable d'équipe | Chronologie | week,agenda |
| Écran mural des opérations | Agenda | utilization,timeline |
| Page Experience Cloud publique | Calendrier | vide, ou une liste courte |
Le mode édition fonctionne dans toutes les vues
Avec Enable Edit Mode activé, le bouton de modification apparaît dans toutes les vues. Cliquez sur un enregistrement dans la Chronologie, la Semaine ou l'Agenda pour l'ajouter à la sélection à modifier, exactement comme une date du calendrier mensuel. Un changement de statut groupé depuis la Chronologie fonctionne comme depuis le calendrier.
Chronologie : lignes repliées
Quand une ressource a des réservations qui se chevauchent, sa ligne se replie en une seule bande avec une pastille N à la fois. Une flèche de dépliage ouvre un couloir par réservation. Les lignes repliées acceptent toujours le glisser, le survol et le clic.
Chronologie : replanifier par glisser-déposer
Avec Enable Edit Mode activé, les barres de la Chronologie se déplacent à la souris. Saisissez le milieu pour décaler une réservation sur d'autres jours, un bord pour changer son début ou sa fin. La barre montre où elle va atterrir et s'enregistre dès que vous relâchez. En zoom Jour, les mêmes gestes changent les heures.
Planifiez des personnes, pas seulement des salles
Resource Object API Name accepte n'importe quel objet. Choisissez User : la Chronologie devient un planning d'équipe, la Semaine une grille de postes et l'Occupation un tableau de bord de la capacité de l'équipe.
- User n'a pas de champ de capacité standard. Ajoutez-en un personnalisé (par exemple Daily Capacity) pour voir l'Occupation en pourcentages.
- Associez Business Hours Start Field (Champ Début des heures ouvrables) et Business Hours End Field (Champ Fin des heures ouvrables) à des champs de User : la grille Semaine suit alors les horaires de chaque personne.
La Config Library propose deux exemples prêts à l'emploi : Planification de la capacité des équipes et Planning des postes du personnel.
8. Réservation de ressources & capacité (composant Booking)
Ressource unique
L'utilisateur choisit une ressource dans une liste déroulante. La grille horaire charge les réservations et la capacité de cette ressource.
Plusieurs ressources
Activez Allow Multiple Resources et la liste déroulante devient des cases à cocher. La grille ne montre que les créneaux libres sur toutes les ressources cochées, et Enregistrer les réserve toutes en une fois.
Capacité
Plusieurs réservations peuvent partager un créneau, avec des badges 3/5 en temps réel. Un créneau complet n'accepte plus de réservation.
| Paramètre | Rôle | Nom d'API |
|---|---|---|
| Capacity Field | Un champ numérique sur la ressource, par exemple Capacity = 5. | capacityField |
| Show Availability Count | Affiche les badges X/Y. | showAvailabilityCount |
| Capacity Aggregation | Combined (par défaut) additionne les réservations et les capacités des ressources cochées : deux salles de 5 affichent 0/10. Distinct compte une seule fois un événement réservé sur plusieurs ressources et retient la plus grande capacité individuelle : un cours dans 4 salles affiche 1/5, et non 4/20. | capacityAggregation |
Conflits
Conflict Behavior décide de ce qui se passe quand un créneau choisi est déjà pris. Conflict Look-Ahead Days fixe jusqu'où vérifier (360 jours par défaut).
| Valeur | Ce qui se passe | Idéal pour |
|---|---|---|
| Block (par défaut) | Un créneau pris ne peut pas être choisi, et l'enregistrement s'arrête en mettant les conflits en évidence. | La plupart des pages de réservation |
| Skip | Enregistre les créneaux libres et ignore ceux qui sont pris. Les dates ignorées sont renvoyées dans Conflict Dates (Output). | Prendre tout ce qui reste libre sur de nombreuses dates |
| Allow | Aucune vérification des conflits. Les réservations peuvent dépasser la capacité. | Surréservation volontaire |
Une fermeture l'emporte toujours. Rien ne s'enregistre sur un créneau bloqué, même avec Allow.
9. Limiter ce que les utilisateurs sélectionnent
Plafonnez ce qu'une personne peut choisir, en nombre de dates ou de créneaux.
| Paramètre | Rôle | Nom d'API |
|---|---|---|
| Max Dates Allowed Booking : Max Dates Per Booking | Le nombre maximal de dates qu'un utilisateur peut choisir. 0 signifie sans limite. | maxSelections |
| Max Time Slots | Le nombre maximal de créneaux au total, toutes dates confondues. 0 signifie sans limite. Mettez 1 pour un seul rendez-vous par personne. | maxTimeSlotSelection |
| Earliest / Latest Selectable Date | Grise les dates en dehors de bornes fixes. | minDate / maxDate |
| Book Up To / Minimum Notice | Une fenêtre glissante : jusqu'à N jours à l'avance, avec au moins N heures de préavis. | maxDaysAhead / minNoticeHours |
| Buffer Between Bookings | Garde un temps de battement libre après chaque réservation. | bufferMinutes |
| Add to Calendar | Après l'enregistrement, un seul fichier .ics pour tout ce qui vient d'être enregistré. | showAddToCalendar |
| Allow Past Dates | Désactivé, seules aujourd'hui et les dates futures sont proposées. Activé par défaut pour Date et Date Time, désactivé pour Booking. | allowPastDates |
10. Bloquer des dates, des heures & des ressources (fermetures)
Tout calendrier peut lire des fermetures depuis un autre objet et griser les dates, créneaux ou ressources concernés : les utilisateurs ne réservent que lorsque vous êtes ouvert. Faites pointer quelques paramètres sur l'objet des fermetures et le composant fait le reste. Le blocage de journées entières fonctionne sur les trois composants. Le blocage d'heures et de ressources nécessite la grille horaire de Date Time ou Booking.
Bloquer ou masquer : quelle différence ?
Les deux se ressemblent mais font l'inverse l'un de l'autre. Bloquer retire de la disponibilité : le créneau s'affiche mais ne peut pas être réservé. Masquer retire des enregistrements de l'affichage, ce qui libère leurs créneaux.
| Bloquer (fermetures) | Masquer (par statut) | |
|---|---|---|
| Ce que ça contrôle | Les dates, heures et ressources réservables | Les enregistrements sauvegardés qui s'affichent |
| Paramètre | Blocked Dates Object (Objet des dates bloquées) et ses champs date, heure et ressource | Ignored Statuses |
| Piloté par | Une liste de fermetures ou de jours fériés : son propre objet, ou votre objet de réservation filtré | Une valeur de statut sur les enregistrements eux-mêmes |
| Ce que voient les utilisateurs | Le créneau est là, mais barré, grisé et non cliquable | L'enregistrement disparaît du calendrier |
| Effet sur la capacité | Retire de la disponibilité | Libère de la disponibilité : l'enregistrement masqué n'est plus compté |
| Les données | Aucune réservation n'existe : vous marquez le créneau comme interdit | Les enregistrements existent toujours dans Salesforce |
| À utiliser pour | Jours fériés, fenêtres de maintenance, une salle ou une région fermée | Les réservations Cancelled ou Rejected qui ne doivent ni encombrer la grille ni compter dans la capacité |
- Ignored Statuses = Cancelled → la réservation disparaît et son créneau se libère.
- Blocked Dates Object = votre objet de réservation, filtré sur Status = Cancelled → la réservation bloque sa date pour que personne ne la reprenne.
Les paramètres des dates bloquées
| Paramètre | Rôle | Nom d'API |
|---|---|---|
| Blocked Dates Object | L'objet qui contient les fermetures, par exemple un objet Office Closure ou votre objet de réservation. Le renseigner active le blocage. | blockedDatesSourceObject |
| Blocked Dates Date Field | Le champ date de cet objet. | blockedDatesDateField |
| Blocked Dates Start / End Time Field | Champs d'heure facultatifs. Renseignez les deux pour des blocages d'une partie de la journée ; laissez-les vides pour des blocages sur la journée entière. Date Time et Booking. | blockedDatesStartTimeField / blockedDatesEndTimeField |
| Blocked Dates Resource Field | Champ de référence facultatif qui limite une fermeture à une seule ressource. Vide, la fermeture s'applique à toutes les ressources. Booking. | blockedDatesResourceField |
| Blocked Dates Filter Field / Value | Périmètre facultatif, comme Region = North ou Status = Cancelled. C'est ainsi qu'une même table de fermetures sert plusieurs calendriers. | blockedDatesFilterField / blockedDatesFilterValue |
Trois niveaux de blocage
- Journée entière : une fermeture sans heures grise toute la date. Sur les trois composants. Une date fermée reste fermée, même si elle a déjà des réservations.
- Partie de la journée : une fermeture avec une heure de début et de fin bloque uniquement ces créneaux. Le reste de la journée reste réservable. Les créneaux bloqués apparaissent dès qu'une date est sélectionnée.
- Une ressource : une fermeture qui pointe vers une ressource ne ferme que celle-ci. Dans une vue à ressource unique, le créneau est barré. Dans la vue combinée, il reçoit un petit marqueur dans le coin et reste réservable sur les ressources ouvertes.
Vous utilisez la grille horaire ? Il vous faut des blocages sur une partie de la journée. Les blocages de journée entière conviennent aux sélecteurs de dates seules.
Deux modèles pour l'objet des fermetures
- Le même objet, marqué par un statut : faites pointer Blocked Dates Object sur votre objet de réservation et filtrez sur Status = Cancelled, pour que les réservations annulées servent aussi de fermetures. C'est le plus simple, mais tous les calendriers de cet objet les partagent. Voir la configuration Prise de rendez-vous avec jours fériés dans la Config Library.
- Un objet de fermeture dédié : un objet Office Closure avec une date, des heures de début et de fin facultatives, un champ Region et une référence facultative à une ressource. Chaque calendrier filtre sur sa région, et une fermeture peut cibler une seule ressource. Voir la configuration Fermetures de ressources à l'heure près.
Pour que chacun bloque son propre temps (un responsable qui bloque une matinée, par exemple), placez un composant Date Time qui enregistre dans l'objet des fermetures sur une page interne ou un site.
Comportement des créneaux bloqués
- Apparence : un créneau entièrement fermé est barré et grisé. Un créneau fermé pour une partie seulement des ressources choisies reçoit un marqueur dans le coin.
- Sélection : un créneau entièrement fermé ne peut être ni cliqué ni survolé en glissant.
- Enregistrement : rien ne s'enregistre sur une ressource, une date et une heure fermées. Avec plusieurs ressources, seule la ressource fermée est écartée ; les autres sont réservées normalement.
Une table de fermetures, plusieurs calendriers
Ajoutez un champ d'étiquette à l'objet des fermetures (Region, Location, Building) et le même champ sur vos ressources. Chaque calendrier utilise alors Resource Filter Field / Value (Champ filtre de ressource / Valeur du filtre de ressource) pour afficher ses propres ressources et Blocked Dates Filter Field / Value (Champ filtre / Valeur de filtre des dates bloquées) pour lire ses propres fermetures.
11. Pages publiques pour invités (Experience Cloud)
Placez un composant sur un site Experience Cloud et n'importe qui peut réserver sans se connecter. Faites les cinq étapes avant de tester en tant qu'invité.
- Autorisations sur les objets. Donnez à l'utilisateur invité du site la Lecture, plus la Création si les invités soumettent quelque chose, sur chaque objet. Salesforce n'autorise jamais les invités à modifier ou supprimer des enregistrements : réservez les pages de modification, d'annulation et de suppression aux utilisateurs connectés.
- Sécurité au niveau du champ sur chaque champ utilisé par le composant, y compris les champs d'heures ouvrables des ressources et les champs d'heure des fermetures. Un seul champ manquant fait échouer la requête des ressources ou des fermetures.
- Une règle de partage invité (Lecture) pour que l'invité voie les enregistrements. Le paramètre par défaut externe à l'échelle de l'organisation de l'objet doit être Privé pour que la règle s'applique. Une règle déployée sous forme de métadonnées demande un clic sur Recalculer dans Configuration, Paramètres de partage.
- L'ensemble d'autorisations MultiDatePick - Guest sur l'utilisateur invité du site. Il donne accès aux classes Apex par lesquelles le composant charge ses données.
- Activez le site. Publier et activer sont deux étapes distinctes.
- Quel enregistrement voient les invités : une page publique utilise Static Parent Record Id, donc tous les invités réservent sur le même parent (un bureau, un lieu ou une ressource). Pour un enregistrement par visiteur, pilotez-le depuis un flux avec un paramètre d'URL. De vrais calendriers par utilisateur nécessitent des utilisateurs connectés.
- Contacts et comptes : Salesforce limite fortement l'accès des invités à ces objets. Faites réserver les invités sur un objet personnalisé, ou utilisez un site authentifié.
- Plusieurs composants sur une même page : ils ne se synchronisent pas en direct. Ajoutez une invitation à actualiser entre eux pour qu'un blocage fait dans l'un apparaisse dans le suivant.
Les étapes de placement sont décrites dans Pages d'application, d'accueil & Experience. Un site complet en exemple se trouve dans Réservation sur Experience Cloud.
12. Pièges fréquents (FAQ)
Une bannière, un bouton Enregistrer absent ou un calendrier vide ? Le Dépannage montre chaque message avec une capture d'écran et la solution.
- Mes couleurs de statut ne s'appliquent pas
- Vérifiez trois choses. (a) Status Field contient-il exactement le nom d'API de la liste de sélection ? Il est sensible à la casse. (b) Status Colors respecte-t-il le format
Value:#hex, Value:#hexsans guillemets ?'Confirmed':'#22C55E'le casse sans aucun message. (c) Les enregistrements ont-ils réellement une valeur dans cette liste de sélection ? - Les enregistrements sont sauvegardés avec des noms inattendus
- Vérifiez Record Name Field (Champ Nom d'enregistrement) : si le champ est court, les noms longs sont tronqués. Vérifiez Append Date to Record Name (Ajouter date/heure au nom) : activé, il ajoute la date et l'heure sélectionnées à chaque nom.
- Comment masquer les enregistrements Cancelled de la grille de capacité ?
- Mettez Ignored Statuses sur
Cancelled, ou une liste commeCancelled,Rejected. Ils disparaissent du calendrier et du calcul de la capacité. - Quelle différence entre bloquer et masquer ?
- Bloquer (fermetures) laisse une date, une heure ou une ressource visible mais non réservable : jours fériés, maintenance, salle fermée. Masquer retire du calendrier et de la capacité des enregistrements comme ceux en Cancelled, ce qui libère le créneau. Voir Bloquer ou masquer.
- Le bouton de modification n'apparaît pas
- Activez Enable Edit Mode. C'est la seule condition, sur les trois composants. Un Status Field est facultatif : il ajoute seulement une liste déroulante de statut dans l'éditeur. Si le bouton manque toujours, Enable Edit Mode est désactivé sur la page ou dans la configuration.
- Je ne veux que certaines ressources (les salles, pas le matériel)
- Utilisez Resource Filter Field et Resource Filter Value. Une valeur : champ
Active__c, valeurtrue. Plusieurs valeurs (OU) :North,South. Plusieurs champs (ET) : champType__c;Active__c, valeurConference Room;true. - Le paramètre à utiliser est Time Display Mode (Mode d'affichage des heures) : Grid ou Dropdown. En mode Grid, toutes les dates partagent la grille. Pour une heure différente par date, choisissez Dropdown et activez Allow Different Times Per Date (Autoriser des heures différentes).
- Comment passer de l'enregistrement géré par le flux à Click to Save ?
- Renseignez Parent Record Id, Child Object API Name, Date Field API Name et Relationship Field API Name. Supprimez l'action Parse Date Entries from JSON et la boucle qui créait les enregistrements. C'est désormais le bouton Enregistrer du composant qui les écrit.
- J'obtiens une notification d'erreur sans détail
- Ouvrez la console de développement du navigateur et cherchez les lignes qui commencent par
[MDP:ERROR]. L'erreur complète y est toujours journalisée, même quand la notification est courte.
13. Recettes de flux
Tout se construit dans Flow Builder. Sans Apex.
Parcourir les dates sélectionnées dans une boucle
- Ajoutez un écran avec le composant Date Time. Laissez vides les paramètres de Click to Save.
- Après l'écran, ajoutez l'action Parse Date Entries from JSON. Passez-lui Dates With Times JSON (Output).
- Parcourez la liste renvoyée par l'action avec une Boucle. Chaque élément a une date de début, une date de fin, une heure de début et une heure de fin.
- Dans la boucle, affectez les valeurs à une variable d'enregistrement et ajoutez-la à une collection. Créez les enregistrements en une seule fois, après la boucle.
Remonter la première et la dernière date sur le parent
Vous voulez que le parent affiche la date enfant la plus ancienne et la plus récente ? Choisissez la méthode sans code adaptée à vos données.
| Votre configuration | Que faire |
|---|---|
| Relation principal-détails | Ajoutez deux champs de récapitulatif de cumul sur le parent : MIN du champ date et MAX du champ date. C'est tout. |
| Relation de référence | Un flux déclenché par un enregistrement sur l'enfant (après l'enregistrement). Obtenir des enregistrements sur l'objet enfant pour le même parent, triés par date croissante, premier enregistrement uniquement. Faites de même par ordre décroissant. Mettez à jour la date de début et de fin du parent avec ces deux dates. |
D'autres modèles de flux : Guide des flux d'écran.
14. Correspondance des objets & champs
Chaque page de composant propose un schéma complet de correspondance des objets et des champs :
- Date : correspondance des objets
- Date Time : correspondance des objets
- Booking : correspondance des objets
Les composants fonctionnent avec n'importe quel objet. Les objets d'exemple du package (Schedule, Event, Resource, Sub Block) ne sont que des valeurs par défaut. Faites pointer les paramètres sur vos propres objets, personnalisés ou standard, qui ont les bons champs.
15. Référence de toutes les propriétés
Chaque paramètre des trois composants, sous le libellé affiché dans Lightning App Builder, Experience Builder et Flow Builder. Le nom d'API figure sous chaque libellé.
Toutes les propriétés Plus de 100 propriétés Cliquez pour déplier : recherche possible
| Propriété | Date | Date Time | Booking | Type | Par défaut | Description |
|---|---|---|---|---|---|---|
| Configuration | ||||||
Config NameconfigName | ✓ | ✓ | ✓ | String | vide | Facultatif : DeveloperName d'un enregistrement Config__mdt créé par l'assistant de configuration. S'il est renseigné, tous les paramètres de champs et d'objets de cette configuration s'appliquent par défaut. Les propriétés texte et numériques définies ici remplacent celles de la configuration. Les cases à cocher viennent toujours de la configuration : une case décochée ne se distingue pas d'une case jamais renseignée. |
| Vues | ||||||
Viewview | ✓ | ✓ | ✓ | String | calendar | Le rendu à utiliser. calendar est la grille mensuelle (par défaut). timeline affiche les ressources en lignes et les dates en colonnes. week est une grille jours par heures. utilization est une heatmap de capacité, en lecture seule. agenda est une liste chronologique, en lecture seule. |
Available ViewsavailableViews | ✓ | ✓ | ✓ | String | vide | Liste, séparée par des virgules, des vues proposées par le sélecteur, par ex. calendar,timeline,agenda. Laissez vide pour proposer les cinq. La vue par défaut (View ci-dessus) est toujours incluse. |
Timeline Window (Days)timelineWindowDays | ✓ | ✓ | ✓ | Integer | 14 | Le nombre de jours affichés à la fois par la vue Chronologie. Sur un mois entier, chaque réservation ne fait qu'une vingtaine de pixels de large et tous les libellés sont coupés : la valeur par défaut est donc 14. Mettez 0 pour afficher le mois complet. |
Timeline ZoomtimelineZoom | ✓ | ✓ | ✓ | String | week | Le zoom de départ de la vue Chronologie : day (les heures d'une journée), week (la Timeline Window) ou month. Les utilisateurs peuvent changer de zoom en cours de consultation. |
Timeline Group By FieldtimelineGroupByField | ✓ | ✓ | ✓ | String | vide | Nom d'API d'un champ de l'objet ressource (par exemple Building__c) qui regroupe les lignes de la Chronologie sous des en-têtes avec une bande de capacité. Laissez vide pour une liste unique. |
Max View ResourcesmaxViewResources | ✓ | ✓ | ✓ | Integer | 0 | Le nombre maximal de lignes de ressources affichées par les vues Chronologie et Occupation, les plus chargées en premier. Évite qu'une longue liste de ressources transforme l'une ou l'autre vue en mur illisible. |
Agenda FieldsagendaFields | ✓ | ✓ | ✓ | String | vide | Champs, séparés par des virgules, à afficher sur chaque ligne de la vue Agenda, après le nom de l'enregistrement. Laissez vide pour reprendre les Hover Fields. Les champs date, heure et nom sont ignorés automatiquement, car la ligne les affiche déjà. |
Resource RowsresourceViewFilter | ✓ | ✓ | ✓ | String | all | Quelles ressources ont une ligne dans la Chronologie et l'Occupation. all affiche toutes les ressources ; booked n'affiche que celles qui ont une réservation dans la période visible. C'est la meilleure façon de raccourcir une longue liste de ressources, car masquer une ligne vide ne fait rien perdre. |
| Affichage et mise en page | ||||||
Button Labellabel | ✓ | ✓ | ✓ | String | Date : Sélectionner les dates ; Date Time : Sélectionner les dates & les heures ; Booking : Réserver une ressource | Le texte du bouton qui ouvre le sélecteur de dates. Exemple : « Choisir des dates » ou « Ajouter des dates » |
Calendar TitlemodalTitle | ✓ | ✓ | ✓ | String | Date : Sélectionner les dates ; Date Time : Sélectionner les dates & les heures ; Booking : Réserver une ressource | Le titre affiché en haut de la fenêtre du calendrier. |
Show Inline (Always Visible)Apparaît aussi sous le nom Show Inline (No Button)showInline | ✓ | ✓ | ✓ | Boolean | true | Activé, le calendrier est toujours visible, sans clic sur un bouton. Désactivé, un bouton ouvre le calendrier dans une fenêtre contextuelle. |
Two-Month ViewtwoMonthView | ✓ | ✓ | ✓ | Boolean | false | Activé, affiche deux mois côte à côte pour sélectionner plus facilement une plage. Désactivé, affiche un mois à la fois. |
Calendar SizecalendarSize | ✓ | ✓ | ✓ | String | medium | Règle la taille globale du calendrier. Valeurs possibles : tiny, xsmall (très petit), small, medium, large. Par défaut : medium. Utilisez tiny ou xsmall pour les barres d'utilitaires, les barres latérales et les vignettes de tableau de bord, small pour les espaces réduits, medium pour la plupart des mises en page, large pour les écrans tactiles. |
Day Header FormatdayHeaderFormat | ✓ | ✓ | ✓ | String | 3 | Longueur des en-têtes des jours de la semaine. Valeurs possibles : 3, 2, 1. Par défaut : 3. 3 = LUN MAR MER, 2 = LU MA ME, 1 = L M M. |
Week Starts on MondayweekStartsOnMonday | ✓ | ✓ | ✓ | Boolean | false | Activé, la semaine commence le lundi (norme ISO, l'usage en France). Désactivé, elle commence le dimanche (usage américain). |
Show Recurring Pattern ButtonshowRecurringPattern | ✓ | ✓ | ✓ | Boolean | true | Activé, affiche un bouton qui permet de sélectionner rapidement tous les jours de semaine, les week-ends ou certains jours précis jusqu'à une date de fin. |
Show Selection SummaryshowSelectedSummary | ✓ | ✓ | ✓ | Boolean | true | Activé, affiche un résumé du nombre de dates sélectionnées et de leur liste. |
Show Done Button in Inline ModeshowDoneButtonInline | ✓ | ✓ | ✓ | Boolean | false | Activé avec Show Inline, affiche un bouton Terminé qui replie le calendrier en un résumé. |
Show In-Component ToastshowSuccessToast | ✓ | ✓ | ✓ | Boolean | false | Affiche la notification de succès ou d'erreur dans le composant lui-même (indispensable sur les sites Experience, où la notification standard n'apparaît pas). Fonctionne aussi sur les pages d'enregistrement. |
Show Add to Calendar After SavingshowAddToCalendar | ✓ | ✓ | ✓ | Boolean | false | Après un enregistrement réussi, un bouton Ajouter au calendrier télécharge un fichier de calendrier (.ics) contenant un événement pour chaque enregistrement créé. Il s'ouvre dans Outlook, Google Agenda et Apple Calendar, et fonctionne pour les invités Experience Cloud. Les enregistrements sans heure deviennent des événements sur la journée entière ; les autres gardent leurs heures. |
Calendar File Location FieldcalendarLocationField | ✓ | String | vide | Nom d'API d'un champ de l'objet ressource dont la valeur devient le lieu de chaque événement du fichier Ajouter au calendrier, par exemple l'adresse d'une salle, ou Name pour la salle elle-même. Laissez vide quand les ressources sont des personnes, comme des conseillers ou des techniciens : elles sont déjà nommées dans le titre de l'événement, et une personne n'est pas un lieu. Nécessite Show Add to Calendar After Saving. | ||
Success Toast Message (optional)successToastMessage | ✓ | ✓ | ✓ | String | vide | Message personnalisé facultatif après un enregistrement réussi. Vide, le message par défaut est utilisé. |
| Règles de sélection | ||||||
Requiredrequired | ✓ | ✓ | ✓ | Boolean | false | Activé, l'utilisateur doit sélectionner au moins une date avant que le flux puisse passer à l'écran suivant. |
Max Dates AllowedApparaît aussi sous le nom Max Dates Per BookingmaxSelections | ✓ | ✓ | ✓ | Integer | 0 | Nombre maximal de dates qu'un utilisateur peut sélectionner. 0 = illimité. |
Max Time SlotsmaxTimeSlotSelection | ✓ | ✓ | Integer | 0 | Nombre maximal de créneaux qu'un utilisateur peut sélectionner au total (toutes dates confondues). 0 = illimité. | |
Allow Past DatesallowPastDates | ✓ | ✓ | ✓ | Boolean | Date : true ; Date Time : true ; Booking : false | Activé, les utilisateurs peuvent sélectionner n'importe quelle date passée. Désactivé, seules aujourd'hui et les dates futures sont sélectionnables. |
Earliest Selectable DateApparaît aussi sous le nom Earliest Bookable DateminDate | ✓ | ✓ | ✓ | Date | vide | La première date sélectionnable. Les dates antérieures sont grisées. Pour empêcher les réservations le jour même, utilisez plutôt Minimum Notice, qui avance avec l'horloge. |
Latest Selectable DateApparaît aussi sous le nom Latest Bookable DatemaxDate | ✓ | ✓ | ✓ | Date | vide | La dernière date sélectionnable. Les dates postérieures sont grisées. |
Book Up To (Days Ahead)maxDaysAhead | ✓ | ✓ | ✓ | Integer | 0 | Une fenêtre de réservation glissante : la dernière date sélectionnable est aujourd'hui plus ce nombre de jours, et elle avance chaque jour. 0 signifie sans limite. Si Latest Selectable Date est aussi renseigné, c'est la plus proche des deux qui s'applique. |
Minimum Notice (Hours)minNoticeHours | ✓ | ✓ | ✓ | Integer | 0 | Rien qui commence avant maintenant plus ce nombre d'heures ne peut être choisi ni enregistré. Les jours précédents sont grisés et, le jour limite, les premiers créneaux se ferment. La règle est revérifiée à l'enregistrement : une page restée ouverte toute la nuit ne peut pas réserver dans le délai de préavis. 0 signifie aucun minimum. |
Pre-Selected DatesdefaultDates | ✓ | ✓ | ✓ | String[] | vide | Les dates déjà sélectionnées à l'ouverture du calendrier. Au format ISO (YYYY-MM-DD). |
Blocked DatesdisabledDates | ✓ | ✓ | ✓ | String[] | vide | Des dates précises qui ne peuvent pas être sélectionnées (affichées en grisé). Pour les jours fériés ou les dates d'interdiction. Au format ISO (YYYY-MM-DD). |
Only These Dates Are SelectableavailableDates | ✓ | ✓ | ✓ | String[] | vide | S'il est renseigné, SEULES ces dates sont sélectionnables : toutes les autres sont grisées. Au format ISO (YYYY-MM-DD). Utile quand les dates valides viennent d'une autre source dans votre flux. |
Auto-Jump to First Available DateautoJumpToFirstAvailable | ✓ | ✓ | ✓ | Boolean | false | Activé avec « Only These Dates Are Selectable » renseigné, le calendrier s'ouvre directement sur le mois de la première date disponible. |
Allow Whole-Day (No Times)allowWholeDayNoTimes | ✓ | ✓ | Boolean | false | Activé, une date sélectionnée sans créneau horaire est enregistrée comme un enregistrement sur la journée entière (la journée est bloquée ou réservée en entier). Les dates avec créneaux sont enregistrées avec leurs heures. | |
| Enregistrements et sauvegarde | ||||||
Parent Record IdrecordId | ✓ | ✓ | ✓ | String | vide | S'il est renseigné, le composant fonctionne en mode Click to Save et écrit des enregistrements enfants liés à ce parent. Passez un Id d'enregistrement issu d'un élément Obtenir des enregistrements ou d'une sortie recordCreate (par ex. {!recordVar.Id}). Laissez vide pour utiliser le modèle standard action d'analyse + boucle + création. |
Static Parent Record IdstaticRecordId | ✓ | ✓ | ✓ | String | vide | Cas particulier : codez en dur un Id d'enregistrement pour attacher ce calendrier à un seul enregistrement parent. Fonctionne sur une page d'enregistrement, une page d'application (Id statique requis), une page d'accueil (Id statique requis) et un site Experience (Id statique requis). Sur une page d'enregistrement, laissez vide : l'enregistrement de la page est injecté automatiquement. |
Parent Record Id FieldparentRecordIdField | ✓ | ✓ | ✓ | String | vide | Utile uniquement quand ce composant se trouve sur la page d'enregistrement d'un AUTRE objet que le parent. Saisissez le nom d'API du champ de référence qui pointe vers le vrai parent. Laissez vide si le composant est sur la page de l'objet parent. |
Child Object API NameApparaît aussi sous les noms Related Booking Object API Name ; Child Object API Name (for preload)relatedObjectApiName | ✓ | ✓ | ✓ | String | vide | Nom d'API de l'objet où chaque date sélectionnée est enregistrée. Exemple : Appointment__c, Schedule_Entry__c. Obligatoire pour Click to Save. |
Date Field API NameApparaît aussi sous le nom Date Field API Name (for preload)dateFieldApiName | ✓ | ✓ | ✓ | String | vide | Nom d'API du champ Date de l'objet enfant qui stocke la date sélectionnée. Exemple : Event_Date__c, Start_Date__c |
End Date Field API NameApparaît aussi sous le nom End Date FieldendDateField | ✓ | ✓ | ✓ | String | vide | Nom d'API d'un champ date de fin sur l'objet enfant. S'il est renseigné, les dates sélectionnées adjacentes sont regroupées en un seul enregistrement avec une date de début et de fin, au lieu d'un enregistrement par date. Exemple : End_Date__c |
Relationship Field API NameApparaît aussi sous le nom Parent Record Relationship FieldrelationshipFieldApiName | ✓ | ✓ | ✓ | String | vide | Nom d'API du champ de référence de l'objet enfant qui le relie à l'enregistrement parent. Exemple : Account__c, Contact__c, Order__c |
Load Existing DatesApparaît aussi sous le nom Load Existing BookingspreloadExistingDates | ✓ | ✓ | ✓ | Boolean | true | Activé, interroge les enregistrements enfants existants et affiche leurs dates dans le calendrier au chargement. Nécessite Child Object, Date Field et Relationship Field. |
Existing Dates ModeApparaît aussi sous le nom Existing Bookings ModepreloadMode | ✓ | ✓ | ✓ | String | editable | Définit l'affichage des dates chargées. Ne s'applique que si Load Existing Dates est activé. Valeurs possibles : editable, readonly. Par défaut : editable. editable = les dates sont sélectionnées et modifiables. readonly = les dates apparaissent grisées et ne peuvent pas être retirées. Dans un flux, ce champ est un texte libre : saisissez exactement l'une de ces valeurs. |
Save Button LabelsaveButtonLabel | ✓ | ✓ | ✓ | String | Enregistrer | Le texte du bouton d'enregistrement en mode Click to Save. Exemple : « Enregistrer les dates », « Confirmer la sélection » |
Record Name FieldrecordNameField | ✓ | ✓ | ✓ | String | vide | Nom d'API d'un champ texte de l'objet enfant où un libellé d'enregistrement est stocké. S'il est renseigné, une zone de saisie permet aux utilisateurs d'entrer ce libellé. |
Default Record NamedefaultRecordName | ✓ | ✓ | ✓ | String | vide | Préremplit la zone de nom de l'enregistrement. Les utilisateurs peuvent le modifier. Exemple : « Jour de congé », « Réunion d'équipe ». |
Append Date/Time to Record NameApparaît aussi sous le nom Append Date to Record NameappendDateTimeToName | ✓ | ✓ | ✓ | Boolean | true | Activé, ajoute la date au nom de l'enregistrement. |
| Statut et modification | ||||||
Status FieldstatusField | ✓ | ✓ | ✓ | String | vide | Nom d'API d'un champ liste de sélection ou statut de l'objet enfant. S'il est configuré, une liste déroulante de statut apparaît à côté du nom de l'enregistrement pour que les utilisateurs attribuent un statut en sélectionnant les dates. Requis pour Status Colors, Ignored Statuses, Status Field Label et Enable Edit Mode. Exemple : Status__c |
Status ColorsstatusColors | ✓ | ✓ | ✓ | String | vide | Correspondance, séparée par des virgules, entre valeurs de statut et couleurs hexadécimales. Format : Value:#hex. Les couleurs de statut s'affichent dans les cases de date du calendrier. Nécessite Status Field. Exemple : Confirmed:#22C55E, Tentative:#fbbf24, Pending:#60a5fa, Cancelled:#a1a8b5 |
Status Color DisplaystatusColorDisplay | ✓ | ✓ | ✓ | String | Date : calendar ; Date Time : both ; Booking : both | Où les couleurs de statut s'affichent. Pour le composant Dates, seule la valeur « calendar » est disponible : les cases de date du calendrier prennent la couleur de leur statut. |
Ignored StatusesApparaît aussi sous le nom Ignored StatuseshideBookingsWithStatus | ✓ | ✓ | ✓ | String | vide | Liste, séparée par des virgules, des valeurs de statut dont les enregistrements sont masqués dans le calendrier. Les enregistrements masqués ne sont plus affichés mais restent dans Salesforce. Nécessite Status Field. Exemple : Cancelled, Rejected |
Selectable Statuses (Status Picker)selectableStatuses | ✓ | ✓ | ✓ | String | vide | Valeurs de statut, séparées par des virgules, que le sélecteur de statut de réservation peut attribuer. Laissez vide pour toutes les autoriser (back-office). Par ex. « Scheduled » pour un site client. Quand un seul statut est sélectionnable, il est choisi automatiquement et le sélecteur est masqué. Nécessite Status Field. |
Second Picklist FieldsecondStatusField | ✓ | ✓ | ✓ | String | vide | Nom d'API facultatif d'une seconde liste de sélection que l'utilisateur renseigne à l'enregistrement (par ex. Reason__c). Sans code couleur : c'est statusField qui pilote les couleurs du calendrier. Ajoutez-la à Hover Popover Fields pour l'afficher. Fonctionne dans les flux, App Builder et les Communities. |
Second Picklist LabelsecondStatusFieldLabel | ✓ | ✓ | ✓ | String | vide | Libellé d'affichage facultatif pour la liste déroulante de la seconde liste de sélection. Vide, le composant dérive un libellé lisible du nom d'API du champ. |
Selectable Second-Picklist ValuesselectableSecondStatuses | ✓ | ✓ | ✓ | String | vide | Liste blanche facultative, séparée par des virgules, des valeurs que l'utilisateur peut choisir dans la seconde liste de sélection. Laissez vide pour toutes les autoriser. Quand une seule valeur est listée, elle est choisie automatiquement et le sélecteur est masqué. |
Status Field LabelstatusFieldLabel | ✓ | ✓ | ✓ | String | vide | Libellé d'affichage facultatif de la liste déroulante de statut vue par les utilisateurs finaux. N'indiquez PAS de nom d'API de champ ici : c'est uniquement un libellé. Vide, le composant dérive un libellé lisible du nom d'API de Status Field. |
Hover Popover FieldshoverFields | ✓ | ✓ | ✓ | String | vide | Liste, séparée par des virgules, des noms d'API de champs à afficher au survol d'une date du calendrier qui a des enregistrements existants. Les champs sont lus sur le Child Object. Les champs de relation sont pris en charge. N'affiche des données que si les enregistrements existants sont chargés (via Load Existing Dates). Exemple : Name, Status__c, Notes__c. Laissez vide pour désactiver l'info-bulle au survol. |
Enable Edit ModeenableEditMode | ✓ | ✓ | ✓ | Boolean | true | Activé, les utilisateurs peuvent cliquer sur des dates existantes pour modifier la date ou le statut, ou supprimer l'enregistrement. Nécessite que Status Field ET Status Colors soient configurés. |
Edit Button LabeleditButtonLabel | ✓ | ✓ | ✓ | String | vide | Libellé personnalisé du bouton qui active le mode édition. Vide, il affiche « Modifier les dates ». |
Edit Record DisplayeditRecordDisplay | ✓ | ✓ | ✓ | String | vide | Mots-clés, séparés par des virgules, qui définissent les champs affichés dans la liste des enregistrements du mode édition, et leur ordre. Mots-clés : name, status, time, date, resource. Par défaut si vide : name, status, time. Exemple : name, date, status |
| Créneaux horaires | ||||||
Time Display ModetimeDisplayMode | ✓ | String | grid | Mode de présentation des heures. Valeurs possibles : grid, dropdown. Par défaut : grid. grid = une grille de créneaux où les utilisateurs cliquent ou font glisser pour choisir des blocs horaires. dropdown = des sélecteurs d'heure lightning-input. En mode dropdown, Allow Different Times Per Date choisit entre un sélecteur commun et un sélecteur par date. Dans un flux, ce champ est un texte libre : saisissez exactement l'une de ces valeurs. | ||
Time Interval (Minutes)Apparaît aussi sous le nom Time Slot Interval (Minutes)timeInterval | ✓ | ✓ | Integer | 30 | Minutes entre deux créneaux. N'importe quel nombre entier fonctionne ; 15, 30 ou 60 minutes sont courants. Exemple : 30 affiche 9:00, 9:30, 10:00. | |
Earliest TimeminTime | ✓ | String | 09:00 | La première heure proposée dans le sélecteur. Au format 24 heures (HH:mm). Exemples : 08:00, 13:00. Laissez vide pour commencer à 00:00. | ||
Latest TimemaxTime | ✓ | String | 18:00 | La dernière heure proposée dans le sélecteur. Au format 24 heures (HH:mm). Exemples : 17:00, 20:00. Laissez vide pour finir à 23:30. | ||
Start Time FieldApparaît aussi sous le nom Start Time Field API NamestartTimeField | ✓ | String | vide | Nom d'API d'un champ Heure de l'objet enfant pour l'heure de début du créneau. Exemple : Start_Time__c | ||
End Time FieldApparaît aussi sous le nom End Time Field API NameendTimeField | ✓ | String | vide | Nom d'API d'un champ Heure de l'objet enfant pour l'heure de fin du créneau. Exemple : End_Time__c | ||
Allow Different Times Per DateallowDifferentTimes | ✓ | ✓ | Boolean | false | Activé avec Time Display Mode sur « dropdown », chaque date a son propre sélecteur d'heure (regroupé par semaine). Désactivé, toutes les dates partagent la même heure. Sans effet quand Time Display Mode est sur « grid ». | |
Enable End TimeenableEndTime | ✓ | Boolean | true | Activé, affiche une liste déroulante Heure de fin à côté de l'Heure de début. La sortie JSON contient alors startTime et endTime. Ne s'applique qu'en mode dropdown (Time Display Mode = « dropdown »). Sans effet en mode grid. | ||
Group Time Slots by PeriodgroupTimeSlotsByPeriod | ✓ | ✓ | Boolean | false | Activé, les créneaux sont regroupés en sections Matin, Après-midi et Soir. Désactivé (par défaut), la grille est continue. Ne s'applique que si Time Display Mode est sur « grid ». | |
Time Grid OnlytimeGridOnly | ✓ | ✓ | Boolean | false | Activé, masque entièrement le calendrier et n'affiche QUE la grille des créneaux pour une date implicite. L'utilisateur choisit des créneaux ; les enregistrements sont sauvegardés sur l'enregistrement hôte via Click to Save (sans étape de choix de date). La date implicite vient de Time Grid Date, sinon de Time Grid Date Field, sinon c'est aujourd'hui. | |
Time Grid DatetimeGridDate | ✓ | ✓ | String | vide | Date ISO explicite facultative (YYYY-MM-DD) pour la date implicite quand Time Grid Only est activé. Priorité la plus haute. Laissez vide pour lire Time Grid Date Field ou, à défaut, prendre aujourd'hui. | |
Time Grid Date FieldtimeGridDateField | ✓ | ✓ | String | vide | Nom d'API facultatif d'un champ Date de l'enregistrement hôte d'où lire la date implicite quand Time Grid Only est activé (sur une page d'enregistrement). Utilisé seulement si Time Grid Date est vide. Exemple : Appointment_Date__c | |
Disable Time Slot Grid (Full-Day Mode)disableTimeSlotGrid | ✓ | Boolean | false | Activé, masque la grille des créneaux pour les réservations à la journée, où seule la date compte. Désactivé (par défaut), affiche la grille des créneaux pour des réservations à l'heure près. | ||
| Ressources et capacité | ||||||
Resource Object API NameresourceObjectApiName | ✓ | String | vide | Nom d'API de l'objet qui stocke vos ressources réservables. Chaque enregistrement = une ressource réservable proposée dans la liste déroulante. Exemple : Room__c, Equipment__c, Vehicle__c, Staff__c | ||
Resource Name FieldresourceNameField | ✓ | String | Name | Nom d'API du champ qui contient le nom affiché de la ressource. En général « Name ». | ||
Resource Filter Field (optional)resourceFilterField | ✓ | String | vide | Nom d'API d'un champ de l'objet ressource qui limite les ressources proposées dans le sélecteur. À utiliser avec Resource Filter Value. Utilisez « ; » pour combiner plusieurs champs (ET). Exemples : « Active__c » (un champ booléen), « Type__c » (une liste de sélection), « Type__c;Building__c » (DEUX champs combinés par ET). Laissez vide pour afficher toutes les ressources. | ||
Resource Filter Value (optional)resourceFilterValue | ✓ | String | vide | La ou les valeurs que doit avoir le champ de filtre. « , » entre les valeurs d'UN même champ = OU (clause IN). « ; » entre les valeurs = ET sur plusieurs champs (autant de valeurs que de champs dans Resource Filter Field). Exemples : « true » : Active=true. « Conference Room » : Type=Conference Room. « North,South » : Building IN North ou South. « Conference Room;North » : Type=Conference Room ET Building=North. « Conference Room;North,South » : Type=Conference Room ET Building IN North ou South. | ||
Business Hours Start FieldbusinessHoursStartField | ✓ | String | vide | Nom d'API du champ Heure de l'objet ressource qui indique quand elle devient disponible chaque jour. Exemple : Business_Hours_Start__c (valeur 08:00:00.000Z pour 8 h). Laissez vide pour proposer des créneaux sur toute la plage configurée. | ||
Business Hours End FieldbusinessHoursEndField | ✓ | String | vide | Nom d'API du champ Heure de l'objet ressource qui indique la dernière heure disponible chaque jour. Exemple : Business_Hours_End__c (valeur 18:00:00.000Z pour 18 h). | ||
Allow Multiple ResourcesApparaît aussi sous le nom Allow Booking Multiple ResourcesallowMultipleResources | ✓ | Boolean | false | Activé, les utilisateurs peuvent cocher plusieurs ressources et les réserver toutes en même temps. La grille horaire ne montre que les créneaux libres sur TOUTES les ressources sélectionnées. Exemple : réserver une salle ET un vidéoprojecteur en même temps. | ||
Allow No ResourceApparaît aussi sous le nom Allow Save Without Picking a ResourceallowNoResource | ✓ | Boolean | false | Activé, les utilisateurs peuvent enregistrer sans choisir de ressource : la référence à la ressource reste vide sur l'enregistrement. Prévu pour les composants qui saisissent des fermetures ou des interdictions, où une ressource vide signifie « s'applique à tout le monde ». Les calendriers en aval qui lisent les fermetures avec un filtre par ressource (blockedDatesResourceField) traitent une ressource vide comme valable pour toute la région : associé à allowNoResource, on obtient le modèle « ciblage facultatif par conseiller ». Laissez désactivé (par défaut) pour une réservation classique, où une ressource doit toujours être choisie. | ||
Booking Object API NameresourceBookingObject | ✓ | String | vide | Nom d'API de l'objet où les réservations sont créées. Un enregistrement par date et par ressource. Exemple : Room_Booking__c, Equipment_Reservation__c | ||
Booking Date FieldbookingDateField | ✓ | String | vide | Nom d'API du champ Date de l'objet de réservation. Doit être de type Date (et non Date/Heure). Exemple : Booking_Date__c | ||
Booking Resource FieldbookingResourceField | ✓ | String | vide | Nom d'API du champ de référence de l'objet de réservation qui pointe vers la ressource. Exemple : Room__c (référence de Room_Booking__c vers Room__c) | ||
Booking Start Time FieldbookingStartTimeField | ✓ | String | vide | Nom d'API du champ Heure de l'objet de réservation pour l'heure de début. Exemple : Start_Time__c. Laissez vide pour des réservations à la journée, sans créneaux. | ||
Booking End Time FieldbookingEndTimeField | ✓ | String | vide | Nom d'API du champ Heure de l'objet de réservation pour l'heure de fin. Exemple : End_Time__c. L'heure de fin est calculée d'après les créneaux sélectionnés. | ||
Book Button LabelresourceBookButtonLabel | ✓ | String | Réserver (Book) | Le texte du bouton qui confirme la réservation. Exemple : « Réserver maintenant », « Réserver », « Confirmer la réservation » | ||
Capacity FieldcapacityField | ✓ | String | vide | Nom d'API d'un champ Nombre de l'objet ressource qui définit le nombre maximal de réservations simultanées par créneau. S'il est renseigné, les créneaux affichent un badge X/Y et restent disponibles jusqu'à ce qu'ils soient complets. Idéal pour les salles de formation, les postes en flex office ou les inscriptions à des cours. Laissez vide pour une seule réservation par créneau. Exemple : Capacity__c | ||
Capacity Aggregation (multi-resource)capacityAggregation | ✓ | String | Combined | UNIQUEMENT EN MODE RÉSERVATION AVEC CAPACITÉ (nécessite Capacity Field). Définit le calcul de la capacité X/Y quand plusieurs ressources sont sélectionnées. COMBINED (par défaut) additionne les réservations ET les capacités : idéal quand chaque ressource est un stock indépendant (par ex. 4 enregistrements sur 4 salles de capacité 5 = 4/20). DISTINCT compte les événements uniques (les enregistrements qui partagent la même date, la même heure de début et de fin sur plusieurs ressources comptent pour UN) et retient la capacité MAX d'une seule ressource : idéal quand un événement occupe plusieurs ressources à la fois (4 enregistrements sur 4 salles = 1/5). | ||
Show Availability CountshowAvailabilityCount | ✓ | Boolean | true | Activé, affiche le détail des disponibilités dans le panneau des ressources (par ex. « 3/5 jours disponibles »). Aide les utilisateurs à choisir la meilleure ressource avant de réserver. Nécessite Resource Object API Name. | ||
| Conflits | ||||||
Conflict BehaviorconflictBehavior | ✓ | ✓ | String | block | Définit ce qui se passe quand des dates sélectionnées entrent en conflit horaire avec des enregistrements existants. « block » (par défaut) : l'enregistrement est bloqué et les dates en conflit sont mises en évidence. « skip » : l'enregistrement a lieu mais les dates en conflit sont ignorées. « allow » : aucune vérification des conflits. Ne s'applique qu'en mode grille commune (Time Display Mode = « grid » + Allow Different Times Per Date désactivé). | |
Buffer Between Bookings (Minutes)bufferMinutes | ✓ | ✓ | Integer | 0 | Minutes laissées libres après chaque réservation existante pour le rangement ou la remise en état, par ressource sur Booking. Une heure qui commencerait dans ce battement compte comme prise partout où la disponibilité s'affiche (grille horaire, compteurs de capacité, glisser-déposer dans Semaine) et à l'enregistrement, et Conflict Behavior décide de la suite. Exemple : 15 laisse un quart d'heure entre deux réunions dans la même salle. | |
Conflict Look-Ahead DaysconflictLookAheadDays | ✓ | ✓ | Integer | 360 | Nombre de jours à l'avance sur lesquels vérifier les conflits de créneaux et charger les disponibilités. Par défaut : 360. Réduisez-le pour de meilleures performances sur les objets à fort volume. | |
| Sous-blocs | ||||||
Consolidate Time SpanconsolidateTimeSpan | ✓ | ✓ | Boolean | false | Activé, les créneaux sélectionnés sortent sous forme d'une seule plage, du début du premier créneau à la fin du dernier. Les intervalles entre créneaux passent automatiquement en orange et sont suivis comme sous-blocs. Pour les plannings où il faut l'amplitude complète d'un poste (par ex. 9 h-17 h) tout en suivant les pauses à part. Ne s'applique qu'en mode grid. | |
Sub-Block Button LabelsubBlockModeButtonLabel | ✓ | ✓ | String | vide | S'il est renseigné, ajoute un bouton bascule qui permet de marquer manuellement des créneaux comme sous-blocs (orange). Utile pour les sous-blocs en bordure de la plage de travail. Laissez vide pour n'utiliser que l'orange automatique. Exemple : « Marquer comme pause », « Marquer comme déjeuner ». Nécessite Consolidate Time Span activé. | |
Show Sub-Block Toggle ButtonshowSubBlockButton | ✓ | ✓ | Boolean | false | Activé, affiche le bouton bascule des sous-blocs dans l'en-tête de la grille horaire. Nécessite Consolidate Time Span activé et Sub-Block Button Label renseigné. | |
Sub-Block Object API NamesubBlockObjectApiName | ✓ | ✓ | String | vide | Nom d'API de l'objet enfant des enregistrements de sous-blocs. Exemple : Work_Break__c. Nécessite Consolidate Time Span activé et le mode Click to Save (Parent Record Id renseigné). | |
Sub-Block Parent Lookup FieldsubBlockParentLookupField | ✓ | ✓ | String | vide | Champ de référence de l'objet sous-bloc qui le relie à l'enregistrement parent. Exemple : Shift__c. Obligatoire quand Sub-Block Object est renseigné. | |
Sub-Block Date FieldsubBlockDateField | ✓ | ✓ | String | vide | Champ date de l'objet sous-bloc. Exemple : Break_Date__c. Obligatoire quand Sub-Block Object est renseigné. | |
Sub-Block Start Time FieldsubBlockStartTimeField | ✓ | ✓ | String | vide | Champ heure de début de l'objet sous-bloc. Exemple : Break_Start__c. Obligatoire quand Sub-Block Object est renseigné. | |
Sub-Block End Time FieldsubBlockEndTimeField | ✓ | ✓ | String | vide | Champ heure de fin de l'objet sous-bloc. Exemple : Break_End__c. Obligatoire quand Sub-Block Object est renseigné. | |
Sub-Block Name FieldsubBlockNameField | ✓ | ✓ | String | vide | Champ texte de l'objet sous-bloc qui stocke un libellé. Exemple : Break_Name__c. Obligatoire quand Sub-Block Object est renseigné. | |
| Dates bloquées | ||||||
Blocked Dates ObjectblockedDatesSourceObject | ✓ | ✓ | ✓ | String | vide | Nom d'API d'un objet à interroger pour trouver les dates à bloquer. Exemple : Public_Holiday__c |
Blocked Dates Date FieldblockedDatesDateField | ✓ | ✓ | ✓ | String | vide | Nom d'API du champ Date de l'objet des dates bloquées. Nécessite Blocked Dates Object. |
Blocked Dates Start Time FieldblockedDatesStartTimeField | ✓ | ✓ | ✓ | String | vide | Facultatif : champ Heure de l'objet bloqué qui marque le DÉBUT d'une fermeture partielle. Quand les champs de début et de fin sont renseignés et qu'un enregistrement bloqué a les deux valeurs, seule cette plage horaire est fermée ce jour-là (le reste reste réservable). Laissez vide pour un blocage sur la journée entière. |
Blocked Dates End Time FieldblockedDatesEndTimeField | ✓ | ✓ | ✓ | String | vide | Facultatif : champ Heure de l'objet bloqué qui marque la FIN d'une fermeture partielle. Va de pair avec Blocked Dates Start Time Field. |
Blocked Dates Resource FieldblockedDatesResourceField | ✓ | ✓ | ✓ | String | vide | Facultatif : limite une fermeture existante à une seule ressource. Indiquez le nom d'API d'un champ de référence ou de ressource de l'objet bloqué ; quand la ressource d'un enregistrement bloqué correspond à celle sélectionnée dans le calendrier, seule cette ressource est fermée sur la plage horaire. Laissez vide et chaque fermeture s'applique à TOUTES les ressources (toute la région). Le blocage lui-même est activé par Blocked Dates Source Object, pas par ce champ. N'a de sens qu'avec la réservation de ressources. |
Blocked Dates Filter FieldblockedDatesFilterField | ✓ | ✓ | ✓ | String | vide | Facultatif : champ de filtre sur l'objet bloqué. Deux modes : (a) mode valeur : si Blocked Dates Filter Value est renseigné, limite les enregistrements bloqués à <champ> = <valeur> (par ex. Status__c = Cancelled). (b) mode parent : si Filter Value est vide, ce champ est traité comme une référence à l'enregistrement courant et le filtre devient <champ> = recordId. Laissez vide pour un blocage global. |
Blocked Dates Filter ValueblockedDatesFilterValue | ✓ | ✓ | ✓ | String | vide | Facultatif : valeur de filtre pour Blocked Dates Filter Field. Si elle est renseignée, les enregistrements bloqués doivent vérifier <filterField> = <filterValue> (par ex. Status__c = Cancelled). Plusieurs catégories de blocages peuvent ainsi cohabiter dans la même table : chaque calendrier choisit celle qui le concerne. |
| Sorties de flux | ||||||
Output Date Ranges as JSONoutputAsJson | ✓ | ✓ | Boolean | false | Activé, remplit la sortie Date Ranges JSON avec les dates consécutives regroupées en plages. Nécessaire pour parcourir les plages avec l'action MultiDatePickParser. | |
Selected Dates (Output)selectedDates | ✓ | ✓ | String[] | vide | SORTIE : tableau de toutes les dates sélectionnées au format ISO (YYYY-MM-DD). À utiliser dans votre flux pour créer des enregistrements ou à transmettre à l'écran suivant. | |
Date Ranges JSON (Output)selectedDateRangesJson | ✓ | ✓ | String | vide | SORTIE : JSON des dates consécutives regroupées en plages. Rempli uniquement si « Output Date Ranges as JSON » est activé. À transmettre à MultiDatePickParser pour boucler dans le flux. | |
Dates With Times JSON (Output)selectedDatesWithTimesJson | ✓ | String | vide | SORTIE : chaîne JSON contenant chaque date et l'heure sélectionnée. À transmettre à MultiDatePickParser pour la parcourir dans votre flux. | ||
Sub-Blocks JSON (Output)subBlocksJson | ✓ | String | vide | SORTIE : JSON des sous-blocs (intervalles ou pauses) par date. Rempli uniquement si Consolidate Time Span est activé. À utiliser dans une boucle de flux pour créer des enregistrements enfants. | ||
Successful Bookings Count (Output)bookingSuccessCount | ✓ | Integer | vide | SORTIE : nombre de réservations créées avec succès. À utiliser dans votre flux pour afficher un message de confirmation. | ||
Conflict Dates (Output)bookingConflictDates | ✓ | String[] | vide | SORTIE : liste des dates où les réservations n'ont pas pu être créées à cause d'un conflit avec des réservations existantes. | ||
Aucune propriété ne correspond à votre filtre ou à votre recherche.
16. Sécurité & accessibilité
- A passé la revue de sécurité Salesforce AppExchange.
- 100 % natif. Vos données restent dans votre org Salesforce. Aucun serveur externe, aucun appel sortant. Voir Confiance & sécurité.
- Toujours vos autorisations. Chaque lecture et chaque enregistrement s'exécutent avec les accès de l'utilisateur : autorisations sur les objets, sécurité au niveau du champ et partage s'appliquent à chaque enregistrement.
- Accessible. WCAG 2.1 AA, testé avec axe-core. VPAT 2.5 complet.
- 9 langues : anglais, espagnol, français, allemand, japonais, hindi, portugais (Brésil), italien, chinois (simplifié).
17. Des questions ou des bugs ?
Il manque quelque chose dans ce guide, ou un élément ne fonctionne pas ? Écrivez à support@multidatepick.com.
Prêt à le voir dans votre org ?
$20 par utilisateur et par mois, toutes les fonctionnalités incluses, essai gratuit de 30 jours. Bientôt disponible sur Salesforce AppExchange.