Pagine app, pagine iniziali e siti Experience
MultiDatePick funziona su ogni superficie Lightning, non solo sulle pagine record. Il trucco è una sola proprietà: Static Parent Record Id.
Perché queste superfici sono diverse
MultiDatePick salva le date scelte come record su un oggetto correlato, ognuno collegato a un record padre. Il componente deve solo sapere quale padre.
- Su una pagina record (ad esempio un record Evento), Salesforce passa automaticamente al componente l'Id del record corrente (il
recordId). Non c'è altro da configurare. - Su una pagina app, una pagina iniziale o un sito Experience non esiste un "record corrente". Salesforce non passa nulla. Senza un padre il componente non ha dove salvare, quindi nasconde il pulsante Salva per scelta invece di mostrarne uno che fallisce al clic.
Trovi Static Parent Record Id nel pannello delle proprietà dopo aver trascinato MultiDatePick su una pagina app o pagina iniziale in Lightning App Builder, oppure su una pagina in Experience Builder.
Static Parent Record Id o flusso: quando usare l'uno o l'altro
Static Parent Record Id fa puntare il componente a un unico padre fisso, quindi ogni visitatore vede lo stesso record. In alcuni casi è perfetto, in altri è sbagliato. Quando il record deve cambiare per utente o per visita, gestiscilo con un flusso su schermo (Screen Flow). Inserisci il componente in una schermata del flusso e collega il suo Parent Record Id a una variabile che il flusso risolve in fase di esecuzione.
Usa Static Parent Record Id quando il record è lo stesso per tutti
- Una pagina di prenotazione pubblica: una pagina "richiedi un appuntamento" per i guest in cui ogni prenotazione si collega allo stesso record padre (un ufficio, una sede o una risorsa). Un Id fisso è esattamente ciò che serve.
- Un calendario per tutta l'organizzazione: un unico record "Chiusure aziendali", oppure una risorsa condivisa che tutti prenotano, che non cambia da utente a utente.
- Un punto di riferimento fisso su una pagina app o iniziale, che punta sempre allo stesso record principale.
Regola pratica: usa Static Parent Record Id quando alla domanda "di chi è questo record?" la risposta è "lo stesso per tutti".
Usa un flusso quando il record viene scelto in fase di esecuzione
- Record per utente: ognuno vede solo i propri (ad esempio, ogni collaboratore esterno arriva sul proprio calendario ferie). Il flusso esegue un Get Records dove il titolare o un Contatto collegato =
{!$User.Id}, memorizza l'Id e lo passa al componente. - Guidato dall'URL: una variabile di input del flusso legge
?id=…dal link, così una pagina serve molti record. Funziona anche per i guest, senza login. - Prima scegli: nella schermata 1 l'utente cerca o sceglie (un dipendente, una sala, un cliente); la schermata 2 mostra il calendario di quel record.
$User) non si applica. Condividi un solo record tramite Static Parent Record Id, oppure passalo da un parametro URL tramite un flusso. I veri calendari per utente richiedono utenti con login.Configurazione in un minuto
Cosa fa comparire il pulsante Salva
Tutti e quattro, altrimenti Salva resta nascosto:
| # | Proprietà (etichetta nel builder) | Pagina record | App / iniziale / Experience |
|---|---|---|---|
| 1 | Record padre | Automatico (recordId) | Static Parent Record Id |
| 2 | Oggetto correlato (Child Object API Name) | Obbligatorio | Obbligatorio |
| 3 | Campo data (Date Field API Name) | Obbligatorio | Obbligatorio |
| 4 | Campo relazione (Relationship Field API Name) | Obbligatorio | Obbligatorio |
Imposta Config Name su una configurazione della configurazione guidata e compila da sola i punti da 2 a 4.
Dove inserirlo
| Superficie | Dove crearla | Come pubblicarla | Chi ha bisogno di accesso |
|---|---|---|---|
| Pagina app | Lightning App Builder, Nuovo, Pagina app | Attivala e aggiungila a una o più app (diventa una scheda) | Set di autorizzazioni MultiDatePick - User |
| Pagina iniziale | Lightning App Builder, Nuovo, Pagina iniziale | Attivala come predefinita dell'organizzazione, oppure per singola app in Gestione app, Pagine | Set di autorizzazioni MultiDatePick - User |
| Sito Experience | Experience Builder, in Custom Components | Pubblica il sito | Profilo membro (o utente guest): lettura e creazione su oggetto e campi, più una regola di condivisione. Siti pubblici: checklist guest |
Consiglio per la pagina iniziale: imposta Existing Dates Mode su readonly per una vista "cosa è in programma" in sola lettura.
Siti guest pubblici: la checklist in cinque passaggi
Una pagina Experience Cloud pubblica permette a chiunque di prenotare senza login. Completa tutti e cinque i passaggi prima di provare come guest. I passaggi 4 e 5 sono i due più spesso dimenticati. Guardalo in funzione nella demo live, un sito guest pubblico.
| # | Passaggio | Cosa impostare |
|---|---|---|
| 1 | Autorizzazioni oggetto | Concedi all'utente guest del sito la lettura, e la creazione se i guest inviano prenotazioni, su ogni oggetto usato dal componente. I guest non possono mai modificare o eliminare. È una regola della licenza guest di Salesforce valida per ogni app, quindi tieni modifica e annullamento su pagine protette da login. |
| 2 | Sicurezza a livello di campo | Lettura su ogni campo mostrato dal calendario. Modifica su ogni campo che scrive, compresi i campi di stato, orario e relazione. Includi anche i campi di orario lavorativo e di chiusura delle risorse. |
| 3 | Regola di condivisione guest | Una regola di condivisione in lettura per l'utente guest, così i guest possono vedere i record. Perché la regola si applichi, l'impostazione predefinita esterna a livello di organizzazione dell'oggetto deve essere Privato. Una regola distribuita come metadati richiede un clic su Ricalcola in Impostazioni di condivisione. |
| 4 | Set di autorizzazioni guest | Assegna MultiDatePick - Guest all'utente guest del sito. Include l'accesso alla classe Apex da cui il calendario carica i dati, più i diritti di lettura e creazione che un guest può avere sugli oggetti MultiDatePick. |
| 5 | Pubblica e attiva | Pubblicare e attivare sono due passaggi distinti. I guest vedono solo un sito attivato. |
Due impostazioni dell'organizzazione di cui i guest hanno bisogno
| Impostazione | Perché |
|---|---|
| Titolare predefinito dei record | I guest non possono essere titolari di record, quindi Salesforce assegna ogni prenotazione guest a un titolare predefinito. Impostalo in Experience Workspaces, Amministrazione, Preferenze. |
| Accesso in lettura ai record collegati | Una prenotazione che punta a una risorsa o a un padre richiede l'accesso guest in lettura su quel record, altrimenti il salvataggio fallisce con un errore di riferimento incrociato. Usa un oggetto personalizzato per tutto ciò che i guest prenotano: l'accesso guest a Contatti e Account è molto limitato. |
Stai progettando una pagina di prenotazione pubblica? Prenotazioni self-service su un sito Salesforce Experience Cloud spiega cosa possono fare i guest e quale vista mostrare loro.
Sei casi d'uso fuori dalla pagina record
| Caso d'uso | Superficie | Componente | Aggiungi |
|---|---|---|---|
| Hub di prenotazione interno ("Prenota una sala") | Pagina app | Booking | Capacity Field (Campo capacità) per la disponibilità "3/10" in tempo reale |
| Appuntamenti self-service per i clienti | Sito Experience | Booking o Date Time | Un flusso quando il padre è il Caso o l'Ordine di ciascun cliente |
| Disponibilità personale / ferie | Pagina iniziale | Date | Colori di stato: Pending e Approved a colpo d'occhio |
| Iscrizioni a eventi e corsi | Sito Experience o pagina app | Date Time | Max Dates Allowed limita le sessioni per persona |
| Iscrizione a turni e volontariato | Sito Experience | Booking | Campo capacità per i "posti rimasti", colori di stato per Open e Full |
| Milestone di progetto | Pagina app | Date o Date Time | Colori di stato (Planned, In Progress, Done) e vista su due mesi |
Risoluzione dei problemi
| Sintomo | Soluzione |
|---|---|
| Salva non compare mai | Uno dei quattro è vuoto. Fuori da una pagina record di solito è Static Parent Record Id. |
| Il calendario si carica, il salvataggio fallisce | Manca l'accesso all'oggetto. Assegna il set di autorizzazioni MultiDatePick - User; su un sito, concedi lettura e creazione al profilo membro o guest. |
| "Field does not exist" (il campo non esiste) al salvataggio | Errore di battitura nel nome API. Copialo da Imposta, Gestione oggetti. Il prefisso dello spazio dei nomi serve solo per gli oggetti di un altro pacchetto (ad esempio acme__Visit_Date__c). |
| I membri del sito non vedono i propri record | Aggiungi una regola di condivisione (o allenta le impostazioni predefinite a livello di organizzazione) sull'oggetto figlio. |
| Le date salvate spariscono all'aggiornamento | Lascia attivo Load Existing Dates (è attivo per impostazione predefinita). |
| Static Parent Record Id "non valido" | Usa un vero Id di 15 o 18 caratteri dell'oggetto padre, quello a cui punta il campo di relazione. |
Altro? Risoluzione dei problemi contiene ogni messaggio di configurazione con uno screenshot e una soluzione.
Hai un altro problema che non trovi qui?
Scrivici le tue domande. Saremo felici di aiutarti.