Category

MSDyn365FO

Category

Si habitualmente recibes los correos de notificación de LCS de tus proyectos ya sabrás esto: todas las máquinas Tier 1 gestionadas por Microsoft desaparecerán a partir del 1 de diciembre!

Tier 1 VMs will be gone
¿Como que desaparecerán?

Esto es lo que dice el correo:

As communicated previously, Microsoft is removing the use of Remote Desktop Protocol (RDP) to access environments managed by Microsoft. As RDP access is required for development, going forward customers will be required to develop using a Cloud Hosted Environment or download a local “Virtual Hard Disk” (VHD) within Lifecycle Services. Cloud Hosted Environments will allow customers to manage the compute, size, and cost of these environments. This infrastructure change will ensure that customers decouple development tools from any running environment.

In addition, effective November 1, Tier 1 environments will not be included in the purchase of Dynamics 365 Finance, Dynamics 365 Supply Chain Management, Dynamics 365 Project Operations, or Dynamics 365 Commerce apps. The ability to purchase additional Add-On tier 1 environments will also be removed at this time. Beginning December 1, Remote Desktop Protocol (RDP) access for the existing Tier 1 Developer environments, managed by Microsoft, will be removed and decommissioned. Customers will need to preserve or move data within these environments by this date. See the FAQ below with links to existing documentation.

Microsoft will continue to invest in development tools and processes to allow customers to extend the rich capabilities available within Dynamics 365. Learn about one of these key investments, which allows for build automation that uses Microsoft-hosted agents and Azure Pipelines. This approach helps customers avoid the setup, maintenance, and cost of deploying build virtual machines (VMs). It also reuses the existing setup of build agents to run other .Net build automation.

Azure credits will be provided for qualifying customers to use for deploying Tier 1’s using Cloud Hosted Environments. Complete this survey to submit your request.

Sinceramente ha sido un poco de sorpresa. Se había informado que los accesos por RDP iban a desaparecer como pone en el correo, y la desaparición de la máquina de build lleva siendo un rumor desde hace 2 años por lo menos. Pero esto es bastante drástico y ¡con muy poco tiempo de aviso! ¡Quedan menos de dos meses para diciembre!

Pero esperad… en vez de especular, Evaldas Landauskas ha preguntado a microsoft y parece que las máquinas no se borrarán de inmediato el día 1 sino progresivamente:

¡Actualización!

Esta noche hemos recibido otro correo de LCS con más detalles y fechas actualizadas. Así que al final se ha aplazado todo un poco y este es el plan:

  • 1 de noviembre de 2020: no se podrán desplegar ni adquirir más entornos Tier 1. Los que no estén desplegados se borrarán.
  • 1 de diciembre de 2020: se eliminará el acceso por RDP.
  • 30 de enero de 2021: se mandarán notificaciones sobre el parado y borrado de las VM Tier 1.

¿Qué hacer ahora?

Esto depende de qué uso estés haciendo de la máquina y si tienes entornos Tier 1 add-on. Y otra prgunta seguramente sea el coste de reemplazar esa máquina virtual.

Sólo la uso como servidor de build

Si sólo usas la máquina Tier 1 como servidor de build tienes dos opciones:

  • Desplegar una máquina de build en tu suscripción
  • Configurar las builds en Azure

Necesitarás una máquina virtual de build si ejecutas tests o sincronizas la DB como parte de tu proceso de build. Es la única forma. Sobre los costes: podrías desplegar una VM de tipo B8MS con 2 discos SSD Premium de 128GB por unos 280€ al mes. Incluso se podría probar a usar una B4MS por unos 160€/mes.

Esto es más o menos lo mismo que cuesta una máquina Tier 1 de las gestionadas por Microsoft. Y si sólo ejecutas los tests y la sincronización una vez al día puedes rebajar los costes un poco más si arrancas y paras la VM desde tu pipeline.

Si no lo necesitáis, o queréis una build de CI que sólo compile el código, simplemente configurad las builds hospedadas de Azure.

La uso de máquina de desarrollo

Si usas máquinas gestionadas por microsoft add-on ara desarrollo tendrás que desplegar nuevas máquinas de desarrollo en tu suscripción (o la de tu cliente).

¿Preocupados por el coste extra? No lo estéis. Si desplegáis máquinas DS12 V2, con 3 discos SSD Premium de 128GB, y las usáis durante 8 horas al día, 20 días al més, el coste es de unos 120€ al mes.

En ambos casos, si leéis el correo, veréis que Microsoft dará créditos de Azure en compensación por estas VMs, pero no sabemos cuántos. Espero que esto haga la transición más sencilla pero estoy seguro que habrá bastante gente quejándose 😂

Podéis leer sobre algunos usos más de la máquina Tier 1 en el blog de Nathan Clouse.

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.

Empecé con este blog en febrero de 2019 y acaba de llegar a las 50.000 visitas, ¡más de 40.000 en los últimos 12 meses!

Gracias a todas las personas que lo han visitado, comentado, compartido o que me han escrito. Me encanta recibir feedback de la gente que lee lo que escribo.

Y como ya habréis notado también he cambiado el diseño del blog. Gracias a Eva González por su ayuda con el blog, el nuevo logo y las imágenes y cabeceras.

¡Ahora a por 50.000 visitas más!

Desde la versión 10.0.12 de Dynamics 365 for Finance and Operations podemos usar las entidades de FnO como Virtual Entities de CDS. Esto nos permite crear Power-Apps de tipo model-driven para Finance and Operations sin necesidad de copiar datos entre Finance and Operations y el Common Data Service (CDS). Esto abre muchos escenarios y nuevas formas de integrar Finance/Supply Chain Management con Customer Engagement.

Si queréis saber más sobre la configuración y uso de las Virtual Entities para FnO podéis:

¡Después de esperar mucho por fin ha llegado! Si alguno de vuestros clientes tiene entornos self-service habréis estado haciendo esto a mano. Nosotros llevamos más de un año y medio con un cliente así, desde la preview privada, y hemos echado MUCHO de menos esto en Azure DevOps.

Toda la documentación está disponible en la página del marketplace para las herramientas de DevOps.

Puedes leer mi guía completa sobre Dynamics 365 y Azure DevOps aquí.

Si quieres saber más sobre los entornos self-service puedes leer estos posts:

En el post de hoy voy a hablar de cómo usar la Power Platform y business events para sacar las aprobaciones del workflow estándar de Microsoft Dynamics 365 Finance and Operations fuera de MSDyn365FO.

¿Cómo? Usando business events, power automate y adaptive cards para mostrar mensajes bonitos en Microsoft Teams.

Si quieres saber más acerca de los business events en Dynamics 365 puedes leer estos posts de Juan Antonio Tomás:

Hace un tiempo publiqué una primera versión del ISV License Generator que nos ayuda a generar una licencia para un solución ISV de Microsoft Dynamics 365 for Finance and Operations, pero usando un token criptográfico USB en vez de un certificado de tipo software.

ISV License Generator
ISV License Generator

En la nueva versión 0.2 he implementado el soporte para SHA-2/SHA-256 y se mantiene el soporte para SHA-1 hasta que esté obsoleto.

Puedes descargar ISV License Generator v0.2 (lee más abajo para la versión 0.3!)y contribuir o ver el código en Github.

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

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.

¡NO sigas este enlace o serás bloqueado en este sitio!