Date ricorrenti in Salesforce
Un martedì sì e uno no. Il 2° e il 4° venerdì. L'ultimo sabato del mese. Sono normali regole aziendali, e Salesforce non ha un campo che ne esprima nemmeno una.
In Salesforce la ricorrenza esiste per Eventi e Attività, e finisce lì. Appena la tua pianificazione vive su un oggetto personalizzato (un turno, una sessione, un'ispezione, una reperibilità a rotazione), sei da solo, e di solito qualcuno calcola le date su un calendario di carta e le inserisce a mano.
I due tipi di ricorrenza
Si tende a confonderli, ma richiedono logiche diverse.
| Tipo | Esempi | Cosa serve |
|---|---|---|
| A intervallo | Ogni settimana, ogni 2 settimane, ogni 3 settimane | Un giorno della settimana più un intervallo di ripetizione |
| A occorrenza | 1° lunedì, 2° e 4° venerdì, ultimo sabato | Quale occorrenza all'interno di ogni mese |
La ricorrenza a intervallo conta in avanti da una data di inizio e ignora i confini dei mesi. Quella a occorrenza riparte ogni mese, e "ultimo" è scomodo perché cade nella 4ª o nella 5ª settimana a seconda del mese. È proprio quella parola a far saltare la maggior parte delle implementazioni fatte in casa.
Perché scriverla da soli va storto
I mesi hanno lunghezze diverse
"Il 5° lunedì" esiste in alcuni mesi e in altri no.
Anni bisestili
Spostano in silenzio ogni calcolo che presuppone un anno fisso.
"A settimane alterne" ha bisogno di un punto di partenza
A settimane alterne a partire da quando? Due persone non saranno d'accordo.
Fine settimana e festività
Potrebbe essere necessario saltarli, e le tue festività stanno nei dati della tua organizzazione.
Generare date troppo in là
Crea migliaia di record che nessuno ha chiesto.
Nessuno di questi punti è difficile da solo. Messi insieme valgono una settimana di lavoro e una fonte permanente di bug nei casi limite.
Generare le date invece di salvare una regola
Sotto l'algoritmo c'è una scelta di progettazione: salvi la regola e la espandi in lettura, oppure la espandi una volta sola e salvi le date che ne risultano?
In Salesforce salvare le date è quasi sempre la risposta migliore. Record di date concreti si usano in report, riepiloghi, filtri e automazioni come qualsiasi altro dato. Una regola salvata va interpretata ovunque la si usi, e i report di Salesforce non sanno interpretarla affatto. Il rovescio della medaglia è che cambiare lo schema significa rigenerare le date, ed è per questo che il selettore dello schema deve stare nel punto di inserimento e non nascosto nella configurazione.
I tre schemi, sullo schermo
Giorni personalizzati viene prima, perché nessun campo standard lo esprime. Scegli qualsiasi combinazione di giorni della settimana, imposta l'intervallo e un periodo, e il calendario mostra ogni data corrispondente prima che tu salvi qualcosa.
Giorni feriali e Fine settimana sono le due scorciatoie più usate, e fanno la stessa espansione con un solo clic.
Fai vedere le date prima di confermare
La cosa migliore che un'interfaccia di ricorrenza possa fare è mostrare il risultato. Quando l'utente sceglie "ogni 2 settimane il martedì" e vede subito le date evidenziate sul calendario, gli errori emergono un secondo prima del salvataggio e non la settimana dopo. E la questione "a settimane alterne a partire da quando" si chiude all'istante, perché il punto di partenza è visibile.
Lo stesso vale per il consolidamento. Se la tua selezione ricorrente produce dal lunedì al venerdì per sei settimane, potresti volere trenta record oppure sei, uno a settimana, con data di inizio e di fine. Deciderlo al momento della selezione costa molto meno che migrare i dati dopo.
Un martedì sì e uno no, con un clic
Prova uno schema ricorrente nella demo live. Le date compaiono sul calendario prima del salvataggio.
- $20/utente/mese, tutte le funzionalità
- Prova gratuita di 30 giorni, senza carta
- 100% nativo Salesforce
- Senza Apex
- Presto disponibile su Salesforce AppExchange