Come far scegliere più date in un flusso su schermo (Screen Flow) di Salesforce
Flow ti dà un solo campo Data per elemento di schermata. Se qualcuno deve scegliere nove giorni, è un problema. Ecco le opzioni, con i pro e i contro di ciascuna.
Prima o poi capita a ogni amministratore. Una richiesta di ferie, un modulo di disponibilità, un'iscrizione a un corso: l'utente deve selezionare più date, non per forza consecutive, e il componente Data standard di Flow ne raccoglie esattamente una.
Le soluzioni di ripiego, e perché fanno male
| Approccio | Come funziona | Il prezzo da pagare |
|---|---|---|
| Più campi Data nella stessa schermata | Data 1, Data 2, Data 3, Data 4... | Limite fisso, brutto da vedere e quasi sempre vuoto |
| Un ciclo che chiede una data alla volta | "Aggiungere un'altra data?" e si torna alla schermata | Diventa una tortura oltre le tre date |
| Un campo di testo libero | L'utente scrive le date come testo | Impossibile da analizzare e da riportare, pieno di errori |
| Solo data di inizio e di fine | Lo si tratta come un unico intervallo continuo | Sbagliato ogni volta che i giorni non sono consecutivi |
| Un elenco di selezione multipla di date | Valori di data generati in anticipo | Invecchia subito e richiede manutenzione continua |
| Un componente calendario a date multiple | Fai clic su tutte le date che ti servono in una sola schermata | Restituisce una raccolta, pronta per il ciclo |
Il ripiego inizio-fine è il più diffuso e quello che sbaglia più in silenzio. "Mi servono liberi il 3, il 4, l'11 e il 18" diventa dal 3 al 18, cioè sedici giorni di assenza presunta. I dati sembrano puliti e sono semplicemente sbagliati.
La vera soluzione: un componente di schermata che restituisce una raccolta
Al flusso serve davvero un componente di schermata in cui l'utente fa clic su quante date vuole e che restituisce una raccolta. Una volta ottenuta, il resto del flusso è ordinaria amministrazione: un ciclo sulla raccolta, un record per ogni data, fatto.
MultiDatePick restituisce diversi output, a seconda di cosa stai raccogliendo:
| Output | Contenuto | Nome API |
|---|---|---|
| Selected Dates | Una raccolta di testo con date ISO, pronta per il ciclo | selectedDates |
| Date Ranges JSON | Intervalli consolidati, quando i giorni consecutivi devono diventare un solo record | selectedDateRangesJson |
| Dates With Times JSON | Orari di inizio e di fine per ogni data | selectedDatesWithTimesJson |
| Successful Bookings Count, Conflict Dates | Cosa è stato salvato e cosa è andato in conflitto | bookingSuccessCount |
Dal JSON di nuovo ai record
Due di questi output sono JSON, perché Flow non ha un tipo nativo per "un elenco di oggetti con più campi ciascuno". Il testo non si analizza in una formula. Il pacchetto include un'azione di flusso, Parse Date Entries from JSON, che prende il JSON e restituisce una vera raccolta con From Date, To Date, Start Time ed End Time. Poi la cicli come qualsiasi altra.
L'insidia che fa perdere un'ora
$GlobalConstant.True o $GlobalConstant.False sulle caselle che ti interessano.
Vuoi che sia il componente a salvare i record? Passa l'Id del record padre in Parent Record Id e creerà un record figlio per ogni data. Lascialo vuoto per fare un ciclo sull'output e creare i record a modo tuo.
Decidi la forma dei record prima di costruire
Le stesse nove date selezionate possono diventare nove record, oppure quattro se i giorni consecutivi si fondono in intervalli, oppure un record padre con sub-block. Ognuna va bene per un report diverso. Decidilo prima di costruire il flusso, perché cambiarlo dopo significa migrare i dati oltre a modificare il flusso.
Metti un vero selettore di date multiple nel tuo prossimo flusso
Fai clic sulle date nella demo live, poi segui Per iniziare per aggiungere il componente a una schermata di flusso.
- $20/utente/mese, tutte le funzionalità
- Prova gratuita di 30 giorni, senza carta
- 100% nativo Salesforce
- Senza Apex
- Presto disponibile su Salesforce AppExchange