Tag

X++

Browsing

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.

Se ha publicado una nueva versión de las tareas para nuestros pipelines que usan los agentes de Azure. Estos cambios se han introducido recientemente para dar soporte a las librerías de autenticación MSAL para la conexión de LCS que utilizamos para subir y desplegar los deployable packages.

Las conexiones que tenemos ahora usan la Azure Active Directory (Azure AD) Authentication Library (ADAL), y el soporte para ADAL va a terminar en junio de 2022.

Esto quiere decir que si no actualizamos las tareas de Asset Upload y Asset Deployment a las nuevas versiones (1.* y 2.* respectivamente) los pipelines de release podrían dejar de funcionar después del 30 de junio de 2022.

¿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…

¡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:

Hoy toca uno corto. Hace un tiempo ya expliqué como añadir un lookup multiselección a un diálogo de SysOperation, y en este post voy a contar como añadir un Menu Item a un diálogo de SysOperation como un Function Button.

Antes de que se introdujera el SysOperation Framework en AX2012, usábamos el RunBase Framework, y quizá hacer estas cosas parecía más fácil/rápido con el RunBase porque teníamos toda la lógica en una única clase. Pero al final lo que tenemos que hacer es prácticamente lo mismo pero en la clase UIBuilder.

Dejad que os muestre y explique el código. Sólo voy a enseñar el DataContract y la UIBuilder porque son las únicas que nos interesan en este caso.

¡Contemplad #XppGroupies! ¡El día que tanto hemos estado esperando ha llegado! Las Azure hosted builds (me cuesta mucho decir Build hospedada en Azure) ya están en preview pública con el PU35!! Ya podemos dejar de preguntarle a Joris cuando estará disponible, porque ya lo está!! Leed los Docs!!

He podido escribir esto porque he podido probarlo durante la preview privada durante unos meses. Y por supuesto gracias a Joris por haberme invitado a la preview!

¿Qué significa esto? No necesitamos ya la VM para ejecutar pipelines! Es broma, sí la necesitamos! Si estámos ejecutando tests o sincronizando la DB como parte de nuestro pipeline todavía necesitamos la VM. Pero podemos mover las builds de CI al agente de Azure.

También puedes leer mi guía sobre MSDyn365FO y Azure DevOps ALM.

Recordar que esto esta en preview privada. Si queréis uniros a la preview primero necesitáis ser parte del Insider Program donde podéis uniros al «Dynamics 365 for Finance and Operations Insider Community«. Una vez invitados deberías ver un nuevo proyecto en LCS llamado PEAP Assets, y dentro de la Asset Library en la sección Nuget package encontraréis los nugets.

Ya que Microsoft Dynamics 365 for Finance & Operations es un erp en la nube, no podemos trabajar con archivos en las unidades del AOS. Era bastante habitual tener integraciones con ficheros en AX, donde tenías un archivo en una carpeta compartida y se procesaba. Por supuesto que todavía podemos trabajar con ficheros, por ejemplo desde una cuenta de almacenamiento en Azure como muestra Miquel Vidal en su blog o con la herramienta Recurring Integrations…

¡Primer post del 2020! ¡Feliz año nuevo! Sí, ya se que estamos a pasado mediados de enero…

Cuando añades un campo en un Data Contract de la SysOperation Framework el lookup que genera el framework (si el EDT lo tiene) es un lookup simple, de selección única. Vamos a ver cómo crear un lookup que permita la selección múltiple en MSDyn365FO.

El SysOperation Framework y MVC

Pero antes un poco de introducción. El SysOperation Framework se introdujo en Dynamics AX 2012 para sustituir al RunBase Framework, y se usa para crear procesos que se ejecutarán por lotes. Las clases de RunBase siguen estando en Dynamics 365 for Finance and Operations. Algunos procesos estándar las siguen usando, mientras otras las usan para luego llamar a clases del SysOperations Framework.

ariste.info