Presto disponibile su Salesforce AppExchange

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.

Guarda la configurazione Risoluzione dei problemi

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.
La soluzione è la proprietà Static Parent Record Id. Incollaci l'Id di un record padre specifico e il componente si comporta esattamente come se fosse sulla pagina di quel record. È una proprietà che imposti nel builder. Non ha nulla a che fare con una risorsa statica di Salesforce, che è una funzionalità diversa per i file caricati.

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.
Siti guest: su un sito pubblico senza login l'"utente" è un unico guest condiviso, quindi la risoluzione per utente ($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

Demo animata della configurazione con Config Name: si copia il nome di una configurazione nella configurazione guidata di MultiDatePick, si trascina il componente Resource Booking su una pagina in Lightning App Builder, si incolla Config Name e si inserisce Static Parent Record Id, e il calendario di prenotazione compare con tutte le impostazioni della configurazione
Copia il nome della configurazione nella configurazione guidata, incollalo insieme all'Id del record padre e il calendario è pronto. Tutte le altre impostazioni arrivano dalla configurazione.

Cosa fa comparire il pulsante Salva

Tutti e quattro, altrimenti Salva resta nascosto:

#Proprietà (etichetta nel builder)Pagina recordApp / iniziale / Experience
1Record padreAutomatico (recordId)Static Parent Record Id
2Oggetto correlato (Child Object API Name)ObbligatorioObbligatorio
3Campo data (Date Field API Name)ObbligatorioObbligatorio
4Campo relazione (Relationship Field API Name)ObbligatorioObbligatorio

Imposta Config Name su una configurazione della configurazione guidata e compila da sola i punti da 2 a 4.

Dove inserirlo

SuperficieDove crearlaCome pubblicarlaChi ha bisogno di accesso
Pagina appLightning App Builder, Nuovo, Pagina appAttivala e aggiungila a una o più app (diventa una scheda)Set di autorizzazioni MultiDatePick - User
Pagina inizialeLightning App Builder, Nuovo, Pagina inizialeAttivala come predefinita dell'organizzazione, oppure per singola app in Gestione app, PagineSet di autorizzazioni MultiDatePick - User
Sito ExperienceExperience Builder, in Custom ComponentsPubblica il sitoProfilo 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.

#PassaggioCosa impostare
1Autorizzazioni oggettoConcedi 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.
2Sicurezza a livello di campoLettura 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.
3Regola di condivisione guestUna 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.
4Set di autorizzazioni guestAssegna 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.
5Pubblica e attivaPubblicare e attivare sono due passaggi distinti. I guest vedono solo un sito attivato.

Due impostazioni dell'organizzazione di cui i guest hanno bisogno

ImpostazionePerché
Titolare predefinito dei recordI 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 collegatiUna 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'usoSuperficieComponenteAggiungi
Hub di prenotazione interno ("Prenota una sala")Pagina appBookingCapacity Field (Campo capacità) per la disponibilità "3/10" in tempo reale
Appuntamenti self-service per i clientiSito ExperienceBooking o Date TimeUn flusso quando il padre è il Caso o l'Ordine di ciascun cliente
Disponibilità personale / feriePagina inizialeDateColori di stato: Pending e Approved a colpo d'occhio
Iscrizioni a eventi e corsiSito Experience o pagina appDate TimeMax Dates Allowed limita le sessioni per persona
Iscrizione a turni e volontariatoSito ExperienceBookingCampo capacità per i "posti rimasti", colori di stato per Open e Full
Milestone di progettoPagina appDate o Date TimeColori di stato (Planned, In Progress, Done) e vista su due mesi

Risoluzione dei problemi

SintomoSoluzione
Salva non compare maiUno dei quattro è vuoto. Fuori da una pagina record di solito è Static Parent Record Id.
Il calendario si carica, il salvataggio fallisceManca 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 salvataggioErrore 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 recordAggiungi una regola di condivisione (o allenta le impostazioni predefinite a livello di organizzazione) sull'oggetto figlio.
Le date salvate spariscono all'aggiornamentoLascia 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.

Scrivi a Support@MultiDatePick.com Torna a Per iniziare Prova la demo live