MultiDatePick para desarrolladores y arquitectos de Salesforce
Cómo encaja el calendario en tu org: dónde se guardan los ajustes, qué recibe un flujo de pantalla, los tipos Apex que tus flujos pueden recorrer en bucle, cómo funciona la seguridad y cómo mover configuraciones entre orgs.
MultiDatePick está pensado para que los administradores nunca necesiten a un desarrollador. Esta página es para cuando un desarrollador o arquitecto participa de todos modos: al revisar el paquete, al crear flujos a su alrededor o al mover su configuración entre sandboxes.
Qué incluye el paquete
| Pieza | Función |
|---|---|
| Componente Date | Elige muchas fechas, arrastra rangos y añade patrones recurrentes. Guarda un registro por fecha o por rango, o devuelve las fechas a un flujo de pantalla. |
| Componente Date Time | Fechas más franjas horarias, comunes o distintas para cada fecha, con control de conflictos. Guarda un registro por fecha, por bloque horario, o un registro principal con sub-bloques. |
| Componente Booking | Reserva salas, equipos, vehículos o personas (cualquier objeto, incluido User) con capacidad, horario comercial, días bloqueados y reglas de reserva. |
| Asistente de configuración | Una pestaña de Lightning que crea configuraciones, con vista previa en directo e importación y exportación en JSON. |
| Acciones de flujo | Parse Date Entries from JSON y Format MultiDatePick Time Range, para los flujos que guardan los registros por sí mismos. |
| Conjuntos de permisos | MultiDatePick - Setup, MultiDatePick - User, MultiDatePick - All Access y MultiDatePick - Guest para sitios públicos. |
Dónde se guardan los ajustes
Cada configuración guardada es un registro de metadatos personalizados: Config__mdt contiene los ajustes y Config_Extension__mdt contiene los más recientes como JSON en Settings__c. Cada ubicación en una página o en una pantalla de flujo indica su configuración en Config Name; cualquier propiedad que definas también en la ubicación sustituye los valores de texto y numéricos de la configuración.
- Desplegable: las configuraciones son metadatos, así que se mueven con conjuntos de cambios, la CLI de Salesforce o tu pipeline de CI/CD como cualquier otro metadato.
- Portable: el asistente exporta una configuración como JSON y la importa en otra org, asignando cualquier objeto o campo que falte allí.
- Revisable: un registro por configuración, legible en Configuración, así que cada cambio aparece en un diff.
Tus datos siguen siendo tuyos
El calendario lee y escribe en tus propios objetos. No hay un modelo de datos de MultiDatePick que sincronizar, ni servicios externos, ni llamadas externas: lo elegido se convierte en registros normales en el objeto que tú eliges, con los campos que asignas (fecha, fecha de fin, hora de inicio y de fin, estado, nombre, recurso). Los desencadenadores, flujos, reglas de validación e informes de esos objetos siguen funcionando como siempre.
Salidas del flujo de pantalla
Coloca un componente en una pantalla de flujo, rellena Config Name y lee estos valores después de la pantalla:
| Salida | Tipo | Contenido |
|---|---|---|
| Selected Dates | Colección de texto | Cada fecha elegida como YYYY-MM-DD. Recórrela en un bucle para crear un registro por fecha. |
| Date Ranges JSON | Texto | Los rangos elegidos, cada uno con fecha de inicio y de fin, cuando Output Date Ranges as JSON está activado. |
| Dates With Times JSON | Texto | Componente Date Time: cada fecha con su hora de inicio y de fin. |
| Successful Bookings Count | Número | Componente Booking: cuántas reservas creó el guardado. |
Pasa un registro a Parent Record Id y el calendario muestra las fechas que ya tiene ese registro y puede guardar otras nuevas por sí mismo. Para que guarde el flujo, elige Mi flujo las guarda en el asistente: el calendario oculta entonces su propio botón Guardar y solo entrega lo elegido al flujo.
Recorrer lo elegido en un bucle del flujo
Para las salidas JSON, la acción Parse Date Entries from JSON convierte el texto en una colección que tu flujo puede recorrer en bucle, sin escribir Apex:
| Tipo definido por Apex | Campos |
|---|---|
MultiDatePickEntryCollection | data (las entradas), totalCount, success, errorMessage |
MultiDatePickEntry | fromDate, toDate, startTime, endTime, resourceId, resourceName, bookingStatus, relatedRecordId, label |
La guía de flujos de pantalla explica el bucle paso a paso, y el artículo sobre bucles en Flow incluye tres flujos de partida que puedes desplegar con VS Code.
Modelo de seguridad
- Cada consulta y cada guardado se ejecutan en modo usuario: los permisos de objeto, la seguridad a nivel de campo y la colaboración se aplican a la persona que usa el calendario, incluidos los usuarios invitados en sitios públicos.
- Nada sale de la org: sin llamadas externas, sin servidores externos, sin subencargados.
- Ha superado la revisión de seguridad de Salesforce. Más detalles en la página de Confianza y seguridad.
- Accesibilidad: un informe VPAT 2.5 frente a WCAG 2.1 A y AA, en la página de Accesibilidad.
Pasar una configuración de sandbox a producción
- Crea y prueba en un sandbox con el asistente de configuración.
- Mueve la configuración: despliega sus registros
Config__mdtyConfig_Extension__mdtcon tu herramienta habitual, o expórtala como JSON desde el asistente e impórtala en producción. - Mueve la página o el flujo que la usa. Las ubicaciones se refieren a la configuración por su nombre, así que no cambia nada más.
- Asigna los conjuntos de permisos a quienes lo usan, y MultiDatePick - Guest en los sitios públicos.
Preguntas frecuentes de desarrolladores
¿Tengo que escribir Apex para usar MultiDatePick?
No. Los componentes cargan y guardan los registros por sí mismos, y los flujos que guardan por su cuenta usan la acción incluida en el paquete Parse Date Entries from JSON en lugar de Apex personalizado.
¿Las configuraciones pueden pasar por CI/CD?
Sí. Cada configuración es un registro de metadatos personalizados (Config__mdt, más Config_Extension__mdt para los ajustes más recientes), así que se despliega como cualquier otro metadato.
¿MultiDatePick añade objetos para mis datos?
No. Guarda en los objetos que tú eliges, así que tus registros, automatizaciones e informes se quedan donde están.
¿Cómo gestiona las zonas horarias y los idiomas?
Las fechas y horas siguen la zona horaria y la configuración regional de Salesforce de cada usuario, y la interfaz está traducida a nueve idiomas.