Demnächst auf der Salesforce AppExchange

MultiDatePick für Salesforce-Entwickler und Architekten

Wie sich der Kalender in Ihre Org einfügt: wo die Einstellungen liegen, was ein Bildschirm-Flow (Screen Flow) zurückbekommt, welche Apex-Typen Ihre Flows in Schleifen verarbeiten können, wie die Sicherheit funktioniert und wie Sie Konfigurationen zwischen Orgs verschieben.

MultiDatePick ist so gebaut, dass Administratoren nie einen Entwickler brauchen. Diese Seite ist für die Fälle, in denen trotzdem ein Entwickler oder Architekt beteiligt ist: beim Prüfen des Pakets, beim Bau von Flows darum herum oder beim Verschieben der Einrichtung durch Sandboxes.

Was im Paket enthalten ist

BestandteilFunktion
Komponente DateViele Tage wählen, Zeiträume ziehen, Wiederholungsmuster hinzufügen. Speichert einen Datensatz pro Datum oder pro Zeitraum oder gibt die Termine an einen Bildschirm-Flow zurück.
Komponente Date TimeTermine plus Zeitfenster, gemeinsam oder pro Tag, mit Konfliktprüfung. Speichert einen Datensatz pro Datum, pro Zeitblock oder einen übergeordneten Datensatz mit Unterblöcken.
Komponente BookingRäume, Geräte, Fahrzeuge oder Personen buchen (jedes Objekt, auch User), mit Kapazität, Geschäftszeiten, gesperrten Tagen und Buchungsregeln.
EinrichtungsassistentEine Lightning-Registerkarte, die Konfigurationen schreibt, mit Live-Vorschau sowie JSON-Import und -Export.
Flow-AktionenParse Date Entries from JSON und Format MultiDatePick Time Range, für Flows, die die Datensätze selbst speichern.
BerechtigungssätzeMultiDatePick - Setup, MultiDatePick - User, MultiDatePick - All Access sowie MultiDatePick - Guest für öffentliche Sites.

Wo die Einstellungen liegen

Jede gespeicherte Einrichtung ist ein Datensatz in Benutzerdefinierten Metadaten: Config__mdt enthält die Einstellungen, und Config_Extension__mdt enthält neuere als JSON in Settings__c. Eine Platzierung auf einer Seite oder einem Flow-Bildschirm nennt ihre Konfiguration in Config Name; jede Eigenschaft, die Sie zusätzlich an der Platzierung setzen, überschreibt die Text- und Zahlenwerte der Konfiguration.

  • Bereitstellbar: Konfigurationen sind Metadaten und lassen sich daher wie alle anderen Metadaten mit Änderungssets, der Salesforce CLI oder Ihrer CI/CD-Pipeline verschieben.
  • Übertragbar: Der Assistent exportiert eine Konfiguration als JSON und importiert sie in eine andere Org, wobei fehlende Objekte oder Felder dort zugeordnet werden.
  • Prüfbar: ein Datensatz pro Einrichtung, lesbar im Setup, sodass jede Änderung in einem Diff sichtbar wird.

Ihre Daten bleiben Ihre Daten

Der Kalender liest und schreibt Ihre eigenen Objekte. Es gibt kein MultiDatePick-Datenmodell zum Synchronisieren, keinen externen Dienst und keinen Callout: Die Auswahl wird zu gewöhnlichen Datensätzen auf dem Objekt Ihrer Wahl, mit den Feldern, die Sie zuordnen (Datum, Enddatum, Start- und Endzeit, Status, Name, Ressource). Trigger, Flows, Validierungsregeln und Berichte auf diesen Objekten funktionieren wie gewohnt weiter.

Ausgaben im Bildschirm-Flow (Screen Flow)

Legen Sie eine Komponente auf einen Flow-Bildschirm, setzen Sie Config Name und lesen Sie nach dem Bildschirm diese Werte aus:

AusgabeTypInhalt
Selected DatesTextsammlungJeder gewählte Tag als YYYY-MM-DD. Verarbeiten Sie ihn in einer Schleife, um einen Datensatz pro Datum zu erstellen.
Date Ranges JSONTextGewählte Zeiträume, jeweils mit Start- und Enddatum, wenn Output Date Ranges as JSON aktiviert ist.
Dates With Times JSONTextKomponente Date Time: jedes Datum mit seiner Start- und Endzeit.
Successful Bookings CountZahlKomponente Booking: wie viele Buchungen beim Speichern erstellt wurden.

Übergeben Sie einen Datensatz an Parent Record Id, dann zeigt der Kalender die vorhandenen Termine dieses Datensatzes an und kann neue selbst speichern. Soll stattdessen der Flow speichern, wählen Sie im Assistenten Mein Flow speichert sie: Der Kalender blendet dann seine eigene Schaltfläche Speichern aus und übergibt die Auswahl nur an den Flow.

Auswahl im Flow in einer Schleife verarbeiten

Für JSON-Ausgaben wandelt die Aktion Parse Date Entries from JSON den Text in eine Sammlung um, die Ihr Flow in einer Schleife durchlaufen kann, ganz ohne Apex:

Apex-definierter TypFelder
MultiDatePickEntryCollectiondata (die Einträge), totalCount, success, errorMessage
MultiDatePickEntryfromDate, toDate, startTime, endTime, resourceId, resourceName, bookingStatus, relatedRecordId, label

Der Leitfaden zum Bildschirm-Flow führt Schritt für Schritt durch die Schleife, und der Beitrag zu Flow-Schleifen enthält drei Start-Flows, die Sie mit VS Code bereitstellen können.

Sicherheitsmodell

  • Jede Abfrage und jedes Speichern läuft im Benutzermodus: Objektberechtigungen, Sicherheit auf Feldebene und Freigaben gelten für die Person, die den Kalender nutzt, auch für Gastbenutzer auf öffentlichen Sites.
  • Nichts verlässt die Org: keine Callouts, keine externen Server, keine Unterauftragsverarbeiter.
  • Hat den Salesforce Security Review bestanden. Details auf der Seite Vertrauen & Sicherheit.
  • Barrierefreiheit: ein VPAT-2.5-Bericht nach WCAG 2.1 A und AA, auf der Seite Barrierefreiheit.

Eine Einrichtung von der Sandbox in die Produktion verschieben

  1. In einer Sandbox erstellen und testen, mit dem Einrichtungsassistenten.
  2. Konfiguration verschieben: Stellen Sie ihre Datensätze in Config__mdt und Config_Extension__mdt mit Ihrem gewohnten Werkzeug bereit, oder exportieren Sie sie im Assistenten als JSON und importieren Sie sie in der Produktion.
  3. Seite oder Flow verschieben, die die Konfiguration nutzen. Platzierungen verweisen über den Namen auf die Konfiguration, sonst ändert sich nichts.
  4. Berechtigungssätze zuweisen: den Personen, die den Kalender nutzen, und MultiDatePick - Guest auf öffentlichen Sites.

Häufige Fragen von Entwicklern

Muss ich Apex schreiben, um MultiDatePick zu nutzen?

Nein. Die Komponenten laden und speichern Datensätze selbst, und Flows, die selbst speichern, nutzen statt eigenem Apex die mitgelieferte Aktion Parse Date Entries from JSON.

Lassen sich Konfigurationen über CI/CD bereitstellen?

Ja. Jede Konfiguration ist ein Datensatz in Benutzerdefinierten Metadaten (Config__mdt, dazu Config_Extension__mdt für neuere Einstellungen) und wird wie alle anderen Metadaten bereitgestellt.

Legt MultiDatePick eigene Objekte für meine Daten an?

Nein. Es speichert in die Objekte, die Sie wählen. Ihre Datensätze, Automatisierungen und Berichte bleiben, wo sie sind.

Wie geht es mit Zeitzonen und Sprachen um?

Datum und Uhrzeit folgen der Salesforce-Zeitzone und dem Gebietsschema jedes Benutzers, und die Oberfläche ist in neun Sprachen übersetzt.