Aprovechar el gestor de notas emergentes

Gabriel Michaud | 17 de enero de 2020

Introducción

Nota de la Redacción: Los pequeños detalles que se aprenden a lo largo de la vida tienen un gran valor. Esto es especialmente cierto en muchas disciplinas, donde las habilidades se perfeccionan con el tiempo. En el campo de la ingeniería y el desarrollo no es diferente: pequeños detalles útiles que rara vez se documentan. Con esto en mente, pensamos que podríamos ofrecer pequeñas publicaciones breves de nuestra comunidad de desarrolladores MVP de Acumatica que consideramos de valor para los desarrolladores de Acumatica. Espere varias de estas publicaciones en los próximos meses.

Esta es la segunda entrega de nuestra serie Consejos y trucos para desarrolladores de Gabriel Michaud, un antiguo empleado de Acumatica que dirigió nuestros laboratorios de Montreal y ahora tiene su propia empresa, Velixo, y uno de nuestros MVP desarrolladores de Acumatica.

Trucos y consejos para desarrolladores

Cuando se introdujo Acumatica 2018 R2, se añadió una nueva función que permite establecer notas emergentes en entidades clave. Por ejemplo, un gerente de compras que ve que el contrato de un proveedor está por renovarse puede poner una nota en el registro del proveedor. La nota aparecerá cuando un usuario esté a punto de realizar una compra a ese proveedor.

Nota emergente - Acumatica.

He aquí una breve demostración grabada de la nota emergente: https: //recordit.co/GC6l7WAuAk

¿Sabía que es posible aprovechar el sistema de notas emergentes en sus propias personalizaciones? Las notas emergentes son notas estáticas que se configuran en los datos maestros. Uno de nuestros clientes nos pidió que personalizáramos sus notas para que se mostraran dinámicamente. En este caso concreto, querían informar a los encargados de la entrada de pedidos de que ya existía en el sistema un pedido para el mismo producto y el mismo cliente, y verificar si había pedidos pendientes del fabricante.

Como actualmente no hay documentación para hacer esto, tuve que usar mi descompilador favorito, dnSpy para ver la implementación de las notas emergentes en PX.Data.dll. Dentro de Acumatica, las notas Popup son establecidas durante el evento FieldVerifying por el PXSelectorAttribute. Si se establece una nota emergente para la entidad configurada, el sistema llama a PopupNoteManager.RegisterText de la siguiente manera utilizando dnSpy:

 

Gestor de notas emergentes. Registrar texto.

 

Puede llamar a la misma función en su propio código para mostrar mensajes emergentes. Para el propósito de mi personalización específica, extendí el gráfico de Entrada de Pedidos de Venta y añadí un manejador de eventos para el campo SOLine Inventory ID.

A continuación se muestra una vista del código incrustado de GibHub: https://gist.github.com/gmichaud/17e346cdf3062de233f52c9976d0a03e

Después de publicar la personalización, el sistema buscará pedidos de venta existentes cuando añada artículos de inventario a un pedido. Si se encuentra un pedido, aparecerá el siguiente mensaje emergente para el cliente:

 

Gestor de notas emergentes. Registrar texto

 

Gracias a esta personalización, nuestro cliente ahora puede evitar la duplicación de pedidos, lo que ocurría con frecuencia con artículos pendientes de entrega que tenían un plazo de entrega más largo de lo habitual.

Tenga en cuenta que, en el momento de escribir esto, no es posible registrar múltiples notas emergentes durante la misma llamada de retorno. Si se llama a PopupManager.RegisterText varias veces, la ventana emergente que aparecerá simplemente indicará que hay varias notas, pero no mostrará las notas individuales.

Espero que encuentres esto útil y empieces a añadir tus propios Popups personalizados a tus soluciones para tus clientes - ¡Feliz Codificación!

Autor del blog

Ex director general de Acumatica Labs Montreal. Me encanta viajar y hablar sobre la nube, ERP, SaaS, desarrollo de software y me apasiona lo que hago.

Reciba las actualizaciones del blog en su bandeja de entrada.