Guia de fluxo de tela
Coloque um calendário MultiDatePick em qualquer fluxo de tela (Screen Flow) do Salesforce. Coloque o componente em uma tela, defina o Config Name e pronto.
Sem necessidade de ApexUma propriedade: Config Name
Crie a configuração uma vez no Assistente de Configuração ou importe uma da Config Library. No fluxo você define uma propriedade e o componente carrega o resto.
- Abra uma Tela
- Pesquise MultiDatePick
- Arraste Booking, Date ou Date Time
- Nome da Configuração (Config Name)
- Salvar
Todas as caixas de seleção vêm da configuração. Com o Config Name definido, você nunca mexe em uma caixa de seleção no Flow Builder. Propriedades de texto e número que você preencher na tela substituem a configuração.
Salvar vinculado a um registro
Associe o Parent Record Id ao registro para o qual o fluxo é executado, como {!recordId} ou um resultado de Obter registros. O componente então salva seus registros vinculados a esse registro pai. Em Date e Date Time, deixe em branco e a seleção passa para o fluxo.
Monte a partir de um fluxo em branco
Cinco minutos no Flow Builder. Nada para implantar: você testa com Depurar.
Configuração, Fluxos, Novo fluxo, Fluxo de tela, Criar.
Adicione um elemento Tela à tela de desenho.
Pesquise MultiDatePick na lista de componentes e arraste-o.
Digite o nome da configuração exatamente como o assistente o salvou. Associe o Parent Record Id se os registros pertencerem a um registro pai.
Clique em Depurar, escolha datas ou horários e verifique se os registros foram criados. Depois clique em Ativar e adicione o fluxo a uma página de registro, a um botão de ação ou a um site do Experience Cloud.
O que o fluxo recebe de volta
O Booking salva as próprias reservas. Date e Date Time entregam a seleção ao fluxo, ou a salvam eles mesmos quando o Parent Record Id está definido.
| Componente | Saída (rótulo no Flow Builder) | Nome da API |
|---|---|---|
| Booking | Successful Bookings Count, Conflict Dates | bookingSuccessCount, bookingConflictDates |
| Date | Selected Dates, Date Ranges JSON | selectedDates, selectedDateRangesJson |
| Date Time | Dates With Times JSON | selectedDatesWithTimesJson |
Sem necessidade de Apex: as ações de fluxo prontas
Você nunca escreve Apex. Para transformar o JSON do Date ou do Date Time em registros, use as três peças que vêm no pacote. Elas aparecem no Flow Builder como qualquer ação padrão.
- Parse Date Entries from JSON
- Percorra as entradas em um loop
- Criar registros, um por entrada
Procure-a em Ação. Passe para ela o Date Ranges JSON ou o Dates With Times JSON. Ela detecta sozinha se é só data ou data e hora.
Classe: MultiDatePickParser
O que a ação retorna. Armazene em uma variável definida pelo Apex e percorra data em um loop.
data: as entradas a percorrertotalCount: quantas sãosuccess,errorMessage: para uma Decisão
Uma entrada, sua variável de loop. Mapeie-a em Criar registros.
fromDate,toDate: o intervalo (iguais para um único dia)startTime,endTime: só no Date Timeid: número da entrada
Date Ranges JSON (Date)
{ "data": [
{ "id": 1, "fromDate": "2026-02-10", "toDate": "2026-02-12" },
{ "id": 2, "fromDate": "2026-02-15", "toDate": "2026-02-15" }
] }
Dates With Times JSON (Date Time)
{ "data": [
{ "id": 1, "fromDate": "2026-02-10", "toDate": "2026-02-10",
"startTime": "09:00", "endTime": "17:00" }
] }
Apêndice: mapear propriedades manualmente
Só se você não usar o Config Name. O Flow Builder lista as propriedades em ordem alfabética e mostra listas de opções como Conflict Behavior como caixas de texto simples, e é por isso que o Config Name é o caminho mais fácil. Para uma tela de Booking, defina estas:
| Rótulo no Flow Builder | O que informar | Nome da API |
|---|---|---|
| Resource Object API Name | O objeto que você reserva, como um objeto Sala | resourceObjectApiName |
| Resource Name Field | O campo exibido como nome de cada recurso | resourceNameField |
| Campo de Capacidade (Capacity Field) | Quantas reservas um recurso aceita ao mesmo tempo. Os horários mostram 3/5 e fecham quando lotam. | capacityField |
| Booking Object API Name | O objeto em que cada reserva é salva | resourceBookingObject |
| Booking Date Field | O campo de data no objeto de reserva | bookingDateField |
| Booking Start Time Field, Booking End Time Field | Os campos de hora no objeto de reserva | bookingStartTimeField, bookingEndTimeField |
| Booking Resource Field | O campo lookup da reserva para o recurso | bookingResourceField |
| Comportamento de Conflito (Conflict Behavior) | Digite block (padrão), skip ou allow | conflictBehavior |
| Parent Record Id | O registro ao qual as reservas pertencem, como {!recordId} | recordId |
| Parent Record Relationship Field | O campo lookup da reserva para esse registro pai | relationshipFieldApiName |
Aqui as caixas de seleção ficam por sua conta. Sem o Config Name, cada caixa de seleção (Required, Show Inline, Output Date Ranges as JSON e as demais) fica como você marcar na tela.
Veja antes de montar
Experimente a demo ao vivo sem login ou receba um aviso no dia em que o MultiDatePick chegar ao Salesforce AppExchange.
Travou em um fluxo? Support@MultiDatePick.com