Próximamente en Salesforce AppExchange

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

PiezaFunción
Componente DateElige 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 TimeFechas 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 BookingReserva salas, equipos, vehículos o personas (cualquier objeto, incluido User) con capacidad, horario comercial, días bloqueados y reglas de reserva.
Asistente de configuraciónUna pestaña de Lightning que crea configuraciones, con vista previa en directo e importación y exportación en JSON.
Acciones de flujoParse Date Entries from JSON y Format MultiDatePick Time Range, para los flujos que guardan los registros por sí mismos.
Conjuntos de permisosMultiDatePick - 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:

SalidaTipoContenido
Selected DatesColección de textoCada fecha elegida como YYYY-MM-DD. Recórrela en un bucle para crear un registro por fecha.
Date Ranges JSONTextoLos rangos elegidos, cada uno con fecha de inicio y de fin, cuando Output Date Ranges as JSON está activado.
Dates With Times JSONTextoComponente Date Time: cada fecha con su hora de inicio y de fin.
Successful Bookings CountNúmeroComponente 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 ApexCampos
MultiDatePickEntryCollectiondata (las entradas), totalCount, success, errorMessage
MultiDatePickEntryfromDate, 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

  1. Crea y prueba en un sandbox con el asistente de configuración.
  2. Mueve la configuración: despliega sus registros Config__mdt y Config_Extension__mdt con tu herramienta habitual, o expórtala como JSON desde el asistente e impórtala en producción.
  3. 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.
  4. 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.