Ribbon Workbench es una herramienta esencial en Dynamics 365 que permite personalizar las barras de comandos (ribbons) de manera intuitiva mediante una interfaz de arrastrar y soltar. Esta herramienta facilita la creación, modificación y eliminación de botones y comandos en las vistas de lista, formularios y subgrids de las entidades. Gracias a esta mecánica es posible conseguir una mayor personalización.
Posibles Usos
Estos son algunos de los usos que se le puede dar a los desarrollos personalizados de la Ribbon Workbench:
- Agregar Botones Personalizados: Puedes agregar botones que ejecuten scripts específicos o que realicen acciones como abrir formularios personalizados.
- Modificar Botones Existentes: Cambia la funcionalidad de los botones predeterminados para adaptarlos a las necesidades de tu organización.
- Eliminar Botones Innecesarios: Simplifica la interfaz de usuario eliminando botones que no sean relevantes para los usuarios.
Beneficios
Los beneficios mas comunes al usar ribbon personalizadas:
- Facilidad de Uso: La interfaz de arrastrar y soltar hace que la personalización sea accesible incluso para usuarios sin conocimientos avanzados de programación.
- Flexibilidad: Permite una amplia gama de personalizaciones, desde simples cambios de etiquetas hasta complejas acciones automatizadas.
- Eficiencia: Acelera el proceso de personalización, reduciendo el tiempo y esfuerzo necesarios para implementar cambios.
Requisitos
- Instalar extensión Ribbon Workbench en XrmToolbox
- Cualquier editor de texto para desarrollo de código

Caso de uso
A continuación, se efectuará el desarrollo de ejemplo de un concepto básico de como interactuar con la ribbon de las entidades.
En este desarrollo se definirá un botón personalizado en la entidad Cuenta, el cual mediante un poco de código JavaScript, se mostrará el nombre de la cuenta actual visualizada en el formulario en un mensaje pop-up:

Crear la solución
Lo primero a tener en cuenta es que, para poder trabajar sobre la ribbon de una determinada entidad, es necesario crear una solución única y exclusivamente (a ser posible) dedicada a la configuración y manipulación de esta.
En el caso de ejemplo se trabajará con la entidad Cuenta, por lo tanto, se procederá a crear una solución desde cero con esta entidad añadida a la solución.
Primer vistazo a Ribbon Workbench
Nada más abrir el Ribbon Workbench, nos encontraremos con una pantalla indicativa para cargar la solución con la que se desea trabajar. En este caso, se seleccionará la que se creó anteriormente:

Una vez con la solución cargada, se visualizará la siguiente ventana con cuatro secciones clave:
1. Destino: Compuesto por tres subsecciones, las cuales nos posibilita poder añadir personalización en tres elementos de la entidad:
1.1 Home: Personaliza la barra de comandos principal que aparece en las vistas de lista de las entidades.
1.2 Subgrid: Modifica las barras de comandos en los subgrids dentro de los formularios de entidad.
1.3 Form: Ajusta la barra de comandos en la parte superior de los formularios de entidad individuales.
2. Caja de herramientas: Sección que nos da la posibilidad de añadir distintos elementos a las ribbon (botones, desplegables, grupos, etc…).
3. Cuadro de elementos: Esta sección mostrara toda personalización realizada en la ribbon de la entidad, y a su vez nos las separa en grupos.
4. Cuadro de propiedades de elementos: En esta sección se aplicará toda configuración a los elementos seleccionados del cuadro de elementos.

Desarrollo
Como en nuestro caso, lo que se desea es añadir un botón en la parte del formulario de cuenta, se procederá a arrastrar del cuadro de herramientas el elemento Button, hacia la sección Form del Destino:

Al soltar el botón en la sección, se puede ver que a aparecido unas propiedades para configurar el botón.
Se procederá a configurar las propiedades para añadirle un nombre significativo y un identificador clave (Id y Label).
También es importante añadirle un comando ya que sin un comando el botón no aparecerá.
Para ello seleccionamos el icono del + en la sección izquierda en la parte de Commands y lo pulsamos:

En resumen, los comandos son fundamentales para definir las acciones que se ejecutan cuando un usuario interactúa con los botones personalizados en la interfaz de Dynamics 365. Mas adelante se profundizará este paso.
También es posible añadirle un icono personalizado al botón, pero en este caso omitiremos este paso:

Una vez aplicado este cambio se procederá a publicar los cambios pulsando en el botón superior de la herramienta:

Este proceso tarda unos minutos en efectuarse.
Si se recarga cualquier registro de la entidad de Cuenta, se podrá ver el nuevo botón que se ha creado en la parte superior derecha, eso quiere decir que la creación ha sido exitosa:

Implementación de funcionalidad
A continuación, se procederá a darle una funcionalidad ha dicho botón, esto se logrará mediante la creación de un JavaScript sencillo, el cual mostrará el nombre de la cuenta actual que estemos visualizando del formulario en un aviso por pantalla.
El primer paso será crear una pequeña función con la cual se recogerán dos datos básicos para el funcionamiento, el contexto del formulario (como parámetro principal) y el valor del campo del nombre de la cuenta. Después de esto, se mostrará dicha información recogida en un simple alert:

Este archivo JS se llamará JS_Account.js.
A continuación, se procederá a añadir el archivo JS a una solución como un nuevo WebResource:

Se seleccionará el archivo JS que se ha desarrollado (también se puede pegar el código directamente en el editor de texto) y hacemos los ajustes que creamos necesarios, en nuestro caso se dejara los ajustes automáticos por defecto y publicamos los cambios:

El siguiente paso es configurar el nuevo WebResource al botón en el Ribbon Workbench, para ello volveremos a la sección de comandos del botón que se creó y añadiremos un nuevo Javascript Action:

A continuación, se añadirá la siguiente configuración de la acción que realizará el botón, para ello habrá que indicar los siguientes parámetros:
- Librería: seleccionar el Javascript desarrollado para esta implementación (JS_Account)
- Function Name: seleccionar la función implementada en el código del JS.
Añadir parámetro:
- Parámetro: seleccionar PrimaryControl (este parámetro hace referencia al contexto del formulario).

Una vez aplicada esta configuración, bastara con publicar los cambios aplicados ya estaría finalizado la configuración del botón en el Ribbon Workbench.
Prueba Final
Por último, solo quedaría ir al registro donde se estaba procediendo con las pruebas, y pulsar el botón Show name. Si aparece el siguiente mensaje en pantalla es que el procedimiento ha ido correctamente:

Conclusión
Usar código personalizado para el desarrollo de funcionalidades personalizadas nos ofrece una flexibilidad y personalización avanzada, pudiendo adaptar botones y acciones a las necesidades del cliente.
También nos ofrece un mayor control detallado sobre la apariencia y diseño de la interfaz (botonera).
Espero que este artículo sobre el desarrollo de personalización de botones os haya servido como una pequeña vista previa de la potencia de esta herramienta y la posibilidad ilimitada que nos ofrece.