So wählen Benutzer mehrere Termine in einem Salesforce-Bildschirm-Flow (Screen Flow)
Flow bietet ein Datumsfeld pro Bildschirmelement. Wer neun Tage wählen muss, hat ein Problem. Hier sind die Möglichkeiten und was jede kostet.
Früher oder später stößt jeder Admin darauf. Ein Urlaubsantrag, ein Verfügbarkeitsformular, eine Schulungsanmeldung: Der Benutzer muss mehrere Tage auswählen, die nicht unbedingt aufeinanderfolgen, und die Standard-Datumskomponente von Flow erfasst genau einen.
Die Notlösungen, und warum sie wehtun
| Ansatz | So läuft es | Der Preis |
|---|---|---|
| Mehrere Datumsfelder auf einem Bildschirm | Datum 1, Datum 2, Datum 3, Datum 4... | Feste Obergrenze, unschön und meist leer |
| Eine Schleife, die einzeln nachfragt | "Weiteres Datum hinzufügen?" und zurück zum Bildschirm | Ab etwa drei Tagen eine Qual |
| Ein Freitextfeld | Der Benutzer tippt die Tage als Text ein | Nicht auswertbar, nicht berichtsfähig, fehleranfällig |
| Nur Start- und Enddatum | Als einen durchgehenden Zeitraum behandeln | Falsch, sobald die Tage nicht zusammenhängen |
| Eine Mehrfachauswahlliste mit Datumswerten | Datumswerte vorab erzeugen | Veraltet schnell, braucht ständige Pflege |
| Eine Kalenderkomponente für mehrere Termine | Jeden benötigten Tag auf einem Bildschirm anklicken | Liefert eine Sammlung, bereit für die Schleife |
Die Notlösung mit Start und Ende ist die häufigste und die am unauffälligsten falsche. Aus "Ich brauche den 3., 4., 11. und 18. frei" wird der 3. bis 18., also sechzehn Tage unterstellte Abwesenheit. Die Daten sehen sauber aus und sind schlicht falsch.
Die echte Lösung: eine Bildschirmkomponente, die eine Sammlung zurückgibt
Was Flow eigentlich braucht, ist eine Bildschirmkomponente, in der der Benutzer so viele Tage anklicken kann, wie er will, und die eine Sammlung zurückgibt. Sobald es die gibt, ist der Rest des Flows Routine: Sammlung per Schleife durchlaufen, pro Tag einen Datensatz anlegen, fertig.
MultiDatePick liefert je nach dem, was Sie erfassen, mehrere Ausgaben:
| Ausgabe | Inhalt | API-Name |
|---|---|---|
| Selected Dates | Eine Textsammlung mit ISO-Datumsangaben, bereit für die Schleife | selectedDates |
| Date Ranges JSON | Zusammengefasste Zeiträume, wenn aufeinanderfolgende Tage zu einem Datensatz werden sollen | selectedDateRangesJson |
| Dates With Times JSON | Start- und Endzeiten pro Tag | selectedDatesWithTimesJson |
| Successful Bookings Count, Conflict Dates | Was gespeichert wurde und was kollidiert ist | bookingSuccessCount |
Aus JSON wieder Datensätze machen
Zwei dieser Ausgaben sind JSON, weil Flow keinen eigenen Typ für "eine Liste von Objekten mit jeweils mehreren Feldern" hat. Text in einer Formel zu parsen ist keine Option. Das Paket bringt eine Flow-Aktion mit, Parse Date Entries from JSON, die das JSON entgegennimmt und eine richtige Sammlung mit From Date, To Date, Start Time und End Time zurückgibt. Diese Sammlung durchlaufen Sie per Schleife wie jede andere.
Ein Stolperstein, der regelmäßig eine Stunde kostet
$GlobalConstant.True oder $GlobalConstant.False bei den Kontrollkästchen, auf die es Ihnen ankommt.
Soll die Komponente die Datensätze selbst speichern? Übergeben Sie die Id des übergeordneten Datensatzes an Parent Record Id, dann legt sie pro Tag einen untergeordneten Datensatz an. Lassen Sie das Feld leer, um die Ausgabe per Schleife zu durchlaufen und die Datensätze auf Ihre eigene Weise anzulegen.
Die Datensatzform festlegen, bevor Sie bauen
Dieselben neun gewählten Tage können neun Datensätze werden, vier Datensätze, wenn aufeinanderfolgende Tage zu Zeiträumen zusammengefasst werden, oder ein übergeordneter Datensatz mit Unterblöcken. Jede Variante ist für einen anderen Bericht die richtige. Entscheiden Sie das, bevor Sie den Flow bauen, denn eine spätere Änderung bedeutet Datenmigration zusätzlich zur Überarbeitung des Flows.
Bauen Sie in Ihren nächsten Flow eine echte Mehrfach-Datumsauswahl ein
Klicken Sie die Tage in der Live-Demo an, und fügen Sie die Komponente dann mit Erste Schritte einem Flow-Bildschirm hinzu.
- $20/Benutzer/Monat, alle Funktionen
- 30 Tage kostenlos, ohne Kreditkarte
- 100 % nativ in Salesforce
- Ohne Apex
- Demnächst auf der Salesforce AppExchange