Business Events - Payload Personalizado (IV)

Business Events: Payload personalizado (IV)

Como ya sabéis (espero 😅), hace unos días presentamos una sesión sobre Business Events para Desarrolladores en la DynamicsCon. En esta sesión, estuvimos hablando, entre otras cosas, de como podíamos personalizar el payload de los Business Events que exponemos al exterior, para darles una estructura distinta a la que viene por defecto, y siendo capaces de reutilizar toda la funcionalidad que Dynamics F&O trae OOB.

Al finalizar la demo, tuvimos unos minutos de Q&A en directo, y uno de los asistentes (J.C.) hizo una consulta relacionada con la parte de los payloads personalizados: ¿Al descargar el esquema desde el catálogo de eventos de negocio, este refleja las modificaciones introducidas con este payload personalizado?. La respuesta, desgraciadamente, fue que no, pero me pareció una gran idea que no me había pasado por la cabeza, aparte de ser realmente útil si vas a consumir los eventos por ejemplo en Power Automate, así que me puse manos a la obra y este ha sido el resultado.

Lo primero que hice fue revisar la posibilidad de extender la funcionalidad del botón «Descargar esquema» para intentar modificar su comportamiento, pero no es posible ir por ese lado, por lo que, finalmente, decidí duplicar dicho botón, y jugar con la propiedad visible de ambos botones, el estándar y el duplicado, en función de el campo JATCustomEvent que añadimos al catálogo de eventos (BusinessEventsTable) para identificar aquellos eventos que van a funcionar con el payload personalizado.

Una vez duplicado el botón, controlaremos en el método active la propiedad visible de los dos botones, el estándar y el duplicado, basando su valor en el campo JATCustomEvent del catálogo de eventos (BusinessEventsTable), el cual fue creado para identificar aquellos eventos que debían utilizar el payload personalizado.

Por último, añadimos un nuevo método a la extensión de la clase BusinessEventsCatalogHelper. Este método va a ser un «duplicado» del método getJSONSchema que genera este esquema de forma estándar, con las modificaciones necesarias para respetar nuestra estructura.

Y este método será ejecutado desde el nuevo botón que hemos creado, descargando el valor devuelto por el mismo en un fichero de texto, tal y como hace el estándar.

Y de esta forma tan sencilla conseguimos añadir algo más de funcionalidad aportando gran valor a nuestro desarrollo.

Desde aquí quiero agradecer al usuario J.C. (lo siento, pero no se tu nombre 🤷‍♂️) por darme la idea durante el evento para mejorar el producto, y como siempre, la solución completa se encuentra disponible en el repositorio de GitHub.

Un saludo!

2 comments / Add your comment below

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Uso de cookies

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información. ACEPTAR

Aviso de cookies