Category

X++

Category

Después de mucho, mucho, mucho, mucho, mucho tiempo esperando, por fin está aquí la funcionalidad de desarrollo local de Dynamics 365 F&O… en preview pública. Es un poco diferente desde la primera vez que oímos hablar de esto en el MBAS de 2019… pero abre un nuevo escenario para los desarrolladores.

No voy a entrar en muchos detalles sobre la nueva experiencia unificada para desarrolladores, que así se llama ahora, pero si quieres saber qué necesitas para usarla y cómo configurarla, puedes leer esta entrada del blog de Aurélien Clere: Dynamics 365 FinOps Unified developer experience.

Hoy explicaré qué es Microsoft Dev Box y cómo podemos utilizarlo con las herramientas de desarrollo local de Dynamics 365 F&O. También conoceremos el coste, y en qué escenarios podríamos beneficiarnos de Microsoft Dev Box como nuestro entorno de desarrollo. Ya sabéis, lo mejor de los dos mundos, o lo peor… 🤣.

Pero antes…

Hoy traigo un post rápido y sencillo de X++ en el que aprenderemos a crear un campo encriptado en Dynamics 365 Finance and Operations.

Crear un campo encriptado en Dynamics 365 Finance and Operations es un proceso sencillo que puede ayudar a asegurar información sensible en tu ERP. Mediante el uso de una clave de cifrado para cifrar los datos, se garantiza que los datos permanezcan seguros incluso si acceden a ellos usuarios no autorizados.

Hace tres días eché un vistazo a las nuevas características de la versión 10.0.25 actualmente en el programa PEAP, leyendo tranquilamente hasta que vi algo sobre custom scripts en prod, algo que decía:

Run custom X++ scripts with zero downtime

Podéis imaginar mi cara cuando leí esto. Al principio estaba confundido, luego sorprendido y luego confundido de nuevo. Después de leer la descripción, la situación no mejoró:

Esta característica le permite cargar y ejecutar paquetes desplegables que contienen scripts X++ personalizados sin tener que pasar por Microsoft Dynamics Lifecycle Services (LCS) o suspender su sistema. Por lo tanto, puede corregir pequeñas inconsistencias de datos sin causar ningún tiempo de inactividad.

¿Nos acaban de dar una forma de ejecutar código en producción sin tener que desplegarlo? Sí, así es. Como mucha gente ha dicho estos dos últimos días: «¡Los jobs de X++ han vuelto!». Y hay muchas discusiones sobre la función de custom scripts.

¿Necesitas obtener el precio de un artículo que tiene un acuerdo comercial, ya sea de compra o de venta? ¡Pues aquí tenemos a nuestra amiga la clase PriceDisc para salvarnos! Esto es uno de esos post referencia que escribo para el Adrià del futuro, porque es algo que olvido con una facilidad pasmosa. ¡La magia del PriceDisc! Existe un método obsoleto, creo que el findItemPriceAgreement, para obtener el precio, pero está obsoleto como acabo de…

Ha pasado un tiempo desde que escribí sobre Application Checker en 2019, y aquí vuelvo a estar. En este post voy a hablar sobre SocrateX y XQuery también, y veremos cómo generar los archivos y bases de datos para analizar el código.

Si quieres aprender más sobre App Checker o SocrateX, puedes leer estos recursos además del post que he enlazado arriba:

Estoy seguro de que muchos de nosotros hemos tenido que desarrollar algún tipo de librería en .NET para solucionar algo en Dynamics 365 Finance and Operations. Creas un proyecto de C#, lo compilas y añades la referencia en tu proyecto de FnO. ¡Ya no tienes que hacer eso! Puedes añadir el proyecto a tu repositorio de código, compilarlo en tu pipeline y ¡la DLL se añade al deployable package!

He estado haciendo estas pruebas a raíz de una conversación en Yammer, y a pesar de que he conseguido compilar .NET y X++ en la misma pipeline sin problemas, he encontrado algun problema o limitación.

Si quieres leer más sobre builds, releases y el ALM de desarrollo de Dynamics 365 puedes leer mi guía sobre MSDyn365 y Azure DevOps ALM.

¡Al fin tendremos funcionalidad de throttling para integraciones por OData!

Es uno de los requerimientos más habituales por parte del cliente: la necesidad de integrar Dynamics 365 con otros sistemas. Y con el (en su día) nuevo AX7 obtuvimos una forma nueva de integrarnos usando los endpoints REST de OData y las entidades expuestas.

Pero las integraciones que usan OData tienen un rendimiento más bien bajo, y para integraciones de alto volumen es mejor usar la API REST de paquetes del Data management. Si usamos la API REST de OData para integraciones de un volumen mayor al que deberíamos vamos a tener problemas de rendimiento.

La funcionalidad de throttling está en preview pública desde la versión 10.0.13, actualmente en PEAP. Se activará obligatoriamente en abril de 2021. Te puedes unir al grupo de Yammer Data Management, Data Entities, OData and Integrations para más información. Recuerda que para unirte a este grupo tienes que haberte unido promero al Programa Insider para Dynamics 365.

Si quieres saber más sobre OData y throttling puedes leer estos recursos:

Si estás trabajando con los (ya no tan) nuevos entornos Tier 2 de tipo self-service en Dynamics 365 for Finance and Operations, puede que ya te hayas dado cuenta de esto: los informes en los entornos Tier 2+ y producción no están usando el visor de informes de SSRS, sino que se imprimen en un visor PDF bien bonito.

¿Pero qué pasa en una máquina de desarrollo?

Si quieres saber más sobre los entornos self-service puedes leer estos posts que escribí hace un tiempo:

ariste.info