🎂 Birthday Message Wall (Enhancing Business Central’s HR)🎉

🎂Muro de mensajes de cumpleaños (Mejorando los recursos humanos de Business Central)🎉

  • 🎈 Enviar felicitaciones de empresa automatizadas por cumpleaños.
  • 💌 Permitir que los compañeros se envíen felicitaciones personales.
  • 📜 Conservar los mensajes de cumpleaños.
  • 🔔 Saber cuando los compañeros de equipo cumplan años.

Creo que son funciones útiles para fomentar y mantener la cohesión del equipo, y aquí es donde entra en juego la funcionalidad que veremos en esta publicación.

La arquitectura de la solución la componen:

  • Mensajes automatizados 🏢: Una cola de trabajo calcula qué empleados cumplen años ese día, crea mensajes de empresa personalizados, publica al instante en la bandeja de entrada de mensajes del empleado.
  • Felicitaciones de cumpleaños entre compañeros 👥: Los empleados pueden enviar mensajes emotivos a sus compañeros.
  • Cálculos de cumpleaños 📊: Próxima fecha de cumpleaños y días para el cumpleaños.
  • Integración dinámica de encabezados 🎯: El encabezado del Centro de roles se adapta según el contexto, ya sea un día normal o el día de tu cumpleaños.

Por lo que, algunos de los beneficios que considero son:

  • Para departamentos de RR. HH.: Seguimiento de cumpleaños 100 % automatizado sin intervención manual, registro de auditoría completo de todas las celebraciones y herramientas de prueba con un solo clic para la validación del sistema.
  • Para empleados: Envío de mensajes con dos clics, ventana de visibilidad de cumpleaños de 7 días, historial de mensajes permanente y recordatorios automáticos mediante el encabezado del Centro de roles.
  • Para la gerencia: Métricas de interacción entre compañeros medibles, iniciativas visibles para fomentar la cultura empresarial y una solución sin mantenimiento que escala de pocos a muchos empleados.

Desde la configuración de usuario hasta el intercambio de mensajes veamos como funciona:

Vincular los usuarios de BC con los empleados mediante el campo Configuración de usuarioN.º de empleado.

El siguiente campo estándar es el único dato obligatorio. Sin esta fecha de nacimiento, el sistema no tiene nada que calcular.

En la página «Birthday Management» de recursos humanos nos muestra a todos los empleados con métricas de cumpleaños calculadas automáticamente: días hasta el cumpleaños, fecha del próximo cumpleaños, cantidad de mensajes. Los botones disponibles son:

  • View All Messages (ver mensajes del empleado seleccionado).
  • Refresh Birthday Dates (recalcular fechas de cumpleaños).
  • Clear Calculated Fields (limpiar campos para testing)
  • Employee Card (abrir página del empleado).

En la página «Team Birthdays», los empleados ven sus próximos cumpleaños (de 0 a 7 días), también muestra si ya enviaste un mensaje este año al compañero de empresa. Los botones disponibles son:

  • Leave Message: Enviar mensaje al empleado seleccionado.
  • My Message Sent To: Ver mensaje enviado al empleado seleccionado.
  • All My Sent Messages: Ver todos tus mensajes enviados a tus compañeros.

Los titulares del Centro de roles (Role Center Headlines) están relacionados a los Próximos cumpleaños y Tu cumpleaños.

En la página «My Birthday Messages» vemos todos los mensajes recibidos en tus cumpleaños a lo largo de los años. Los mensajes de empresa (verde) y los mensajes de compañeros (estándar).

La solución se compone:

  • GDRGBirthdayMessage.Table.al – Almacena mensajes de cumpleaños con almacenamiento para texto y una clave única que evita la duplicación de felicitaciones anuales.
  • GDRGEmployeeBirthday.TableExt.al – Amplía la tabla de empleados con campos de seguimiento de cumpleaños, cálculos automáticos y una clave de ordenación personalizada.
  • GDRGUserSetup.TableExt.al – Vincula la configuración de usuario con los registros de empleado.
  • GDRGUserSetupPage.PageExt.al – Añade un campo de vinculación de empleado con el usuario.
  • GDRGBirthdayMessageType.Enum.al – Define la clasificación del mensaje (Empresa/Colega) para su filtrado y visualización.
  • GDRGBirthdayManagement.Codeunit.al – Lógica de negocio básica con funciones para cálculos, validaciones y operaciones con mensajes. – GDRGBirthdayNotification.Codeunit.al – Automatización de la cola de trabajos que se ejecuta diariamente para el procesamiento de cumpleaños.
  • GDRGBirthdayHeadline.Codeunit.al – Generación dinámica de texto de titular que se adapta al contexto del usuario y al estado del cumpleaños.
  • GDRGBirthdayManagementHR.Page.al – Panel administrativo de RR. HH. con métricas de cumpleaños y resaltado de filas.
  • GDRGTeamBirthdayPortal.Page.al – Portal del empleado que muestra los próximos cumpleaños (0-7 días).
  • GDRGMyBirthdayMessages.Page.al – Bandeja de entrada de doble propósito que muestra los mensajes recibidos y enviados con el contexto del empleado.
  • GDRGBirthdayMessageDialog.Page.al – Cuadro de diálogo estándar para la redacción de mensajes.
  • GDRGBirthdayHeadlinePart.Page.al – Control HeadlinePart para la integración con el Centro de roles, que muestra información de cumpleaños.
  • GDRGBusinessManagerRC.PageExt.al – Amplía el Centro de roles de Business Manager añadiendo un encabezado de cumpleaños.
  • GDRGBirthdayMsg.PermissionSet.al – Permisos de seguridad completos para todas las tablas, páginas y unidades de código.

Pienso que en la era actual donde el teletrabajo y la comunicación digital dominan, un saludo es un detalle agradable, y posiblemente esencial para construir y mantener fuertes lazos de equipo.

Espero que esta información te ayude.


🎂 Birthday Message Wall (Enhancing Business Central’s HR)🎉

  • 🎈 Send automated company birthday greetings.
  • 💌 Allow colleagues to send each other personal birthday greetings.
  • 📜 Save birthday messages.
  • 🔔 Know when your teammates have birthdays.

I believe these are useful functions for fostering and maintaining team cohesion, and this is where the functionality we’ll see in this post comes into play.

The solution architecture consists of:

  • Automated Messaging 🏢: A work queue calculates which employees have birthdays that day, creates personalized company messages, and instantly posts them to the employee’s message inbox.
  • Birthday Wishes Among Colleagues 👥: Employees can send heartfelt messages to their colleagues.
  • Birthday Calculations 📊: Upcoming birthday date and days until birthday.
  • Dynamic Header Integration 🎯: The Role Center header adapts to the context, whether it’s a regular day or your birthday.

Therefore, some of the benefits I consider are:

  • For HR departments: 100% automated birthday tracking with no manual intervention, a complete audit trail of all celebrations.
  • For employees: Two-click messaging, a 7-day birthday visibility window, a permanent message history, and automatic reminders via the Role Center header.
  • For management: Measurable peer interaction metrics, visible initiatives to foster company culture, and a maintenance-free solution that scales from few to many employees.

From user settings to message exchange, let’s see how it works:

Link BC users to employees using the User Setup→ Employee No. field.

The following standard field is the only required data. Without this date of birth, the system has nothing to calculate.

The HR «Birthday Management» page displays all employees with automatically calculated birthday metrics: days until birthday, next birthday date, and number of messages. The available buttons are:

  • View All Messages (view messages from the selected employee).
  • Refresh Birthday Dates (recalculate birthdays).
  • Clear Calculated Fields (clear fields for testing).
  • Employee Card (open employee page).

On the «Team Birthdays» page, employees can see their upcoming birthdays (from 0 to 7 days). It also shows if you’ve already sent a message to a colleague this year. The available buttons are:

  • Leave a Message: Send a message to the selected employee.
  • My Message Sent To: View the message sent to the selected employee.
  • All My Sent Messages: View all your messages sent to your colleagues.

The Role Center Headlines are related to Upcoming Birthdays and Your Birthday.

On the «My Birthday Messages» page, you’ll see all the messages you’ve received on your birthday over the years. These include messages from your company (green) and messages from colleagues (standard).

The solution is composed of these objects:

  • GDRGBirthdayMessage.Table.al – Stores birthday messages with text storage and a unique key to prevent duplicate annual greetings.
  • GDRGEmployeeBirthday.TableExt.al – Extends the employee table with birthday tracking fields, automatic calculations, and a custom sort key.
  • GDRGUserSetup.TableExt.al – Links user settings to employee records.
  • GDRGUserSetupPage.PageExt.al – Adds a field to link employee to user.
  • GDRGBirthdayMessageType.Enum.al – Defines message classification (Company/Colleague) for filtering and display.
  • GDRGBirthdayManagement.Codeunit.al – Basic business logic with functions for calculations, validations, and message operations.
  • GDRGBirthdayNotification.Codeunit.al – Automation of the job queue that runs daily for birthday processing.
  • GDRGBirthdayHeadline.Codeunit.al – Dynamic generation of headline text that adapts to the user’s context and birthday status.
  • GDRGBirthdayManagementHR.Page.al – HR administrative dashboard with birthday metrics and row highlighting.
  • GDRGTeamBirthdayPortal.Page.al – Employee portal that displays upcoming birthdays (0-7 days).
  • GDRGMyBirthdayMessages.Page.al – Dual-purpose inbox that displays received and sent messages with employee context.
  • GDRGBirthdayMessageDialog.Page.al – Standard dialog box for composing messages.
  • GDRGBirthdayHeadlinePart.Page.al – A HeadlinePart control for integration with the Role Center, displaying birthday information.
  • GDRGBusinessManagerRC.PageExt.al – Extends the Business Manager Role Center by adding a birthday header.
  • GDRGBirthdayMsg.PermissionSet.al – Full security permissions for all tables, pages, and code units.

I think that in the current era where teleworking and digital communication dominate, a greeting is a nice touch, and possibly essential to building and maintaining strong team bonds.

I hope this information helps you.


Más información / More information:

Deja un comentario