En el proceso de implementación de desarrollos y/o personalizaciones e instalación de actualizaciones (KB’s) en Dynamics 365 for Finance and Operations, es de gran utilidad seguir una correcta secuencia en la ejecución de estas tareas, desde la generación de paquetes implementables  hasta la aplicación de actualizaciones de mantenimiento en la plataforma Lifecycle Services. Dicha plataforma nos ofrece una enorme gama de herramientas para el seguimiento de proyectos, acceso a herramientas de mantenimiento, administración del sistema ERP (tanto soporte por parte de Microsoft como actualizaciones de Dynamics), entre otras funcionalidades que nos ayudan a seguir un proceso guiado para el monitoreo y mantenimiento del sistema.

En este artículo, nos enfocamos en aprovechar esta plataforma y en el uso ambiente de desarrollo de Dynamics 365 para minimizar errores de implementación en ambientes de UAT (User Acceptance Testing) y Producción. Para lograr esto, tenemos las siguientes recomendaciones:

Generación de paquetes implementables

Durante la implementación de los paquetes en la plataforma Lifecycle Services pueden ocurrir errores que nos llevan al análisis del registro de ejecución (logs) y del Runbook que genera dicha plataforma, lo cual toma horas de análisis. Esto ocurre debido a que cuando se realiza la construcción de los modelos en la generación del paquete, el sistema no realiza los mismos pasos que son necesarios para implementar un paquete. Con el objetivo de prevenir estos errores desde el ambiente de desarrollo es recomendable seguir los siguientes pasos antes de crear el paquete implementable:

Ejecución previa a la generación del paquete

Existen 2 opciones que utilizaremos para esta ejecución previa:

1.    Construcción completa de modelos

2.    Sincronización de base de datos

Es importante ejecutar estos procesos en ese orden, debido a que la sincronización de la base de datos se aplica a los objetos en el AOT que estén completamente compilados y construidos. Si se trata de ejecutar la sincronización de base de datos antes de la construcción completa de los modelos a implementar, la sincronización concluirá satisfactoriamente sin tomar en cuenta el 100% de los objetos que se haya desarrollado o instalado.

Ejecutar la construcción completa del modelo a implementar

Como proceso previo de validación, la construcción completa del modelo que se desea implementar nos ayuda a tener visibilidad en algunos errores en código X++, propiedades de objetos, elementos faltantes en formularios o tablas, declaraciones incorrectas de métodos o clases, por mencionar algunos ejemplos.

Con la construcción completa ejecutada satisfactoriamente, se tiene la certeza que los elementos que se implementarán tienen una estructura correcta, y podemos continuar con el siguiente paso antes de crear el paquete.

Sincronización de base de datos

Los casos más comunes de errores en implementación de paquetes ocurren durante la sincronización de la base de datos. En el proceso de sincronización, desde Visual Studio en el ambiente de desarrollo, todas las tablas y vistas en el sistema, tanto las nativas como las creadas por desarrollo o en la instalación de actualizaciones, son sincronizadas en el servidor de base de datos de SQL Server. Este proceso nos ayuda a verificar y asegurar que después de la construcción completa de los modelos, la base de datos mantiene su integridad, por lo tanto, la implementación del paquete que contenga los elementos de datos (tablas y vistas) personalizados o desarrollados se ejecutará con el mismo resultado en los ambientes UAT y Producción.

Ruta única para almacenar los paquetes

El proceso de creación de paquete implementable permite elegir una ruta en específico para guardar el archivo .zip que se genera. Es muy eficaz el tener una ruta única y específica para estos archivos ya que esto nos ayuda a encontrarlos fácilmente al momento de cargarlos a Lifecycle Services.

Cabe resaltar que el proceso de creación de paquete implementable crea la carpeta “DeployablePackage” si no la encuentra, por lo que debemos siempre seleccionar la carpeta superior a ésta para mantener todos los archivos en la misma carpeta como se muestra en la siguiente imagen.

Aprobar como versión candidata para lanzamiento (Sign off as a release candidate version)

Al concluir satisfactoriamente el proceso de implementación en un ambiente UAT, y después de la correcta ejecución de las pruebas necesarias, si el paquete está validado y aprobado, se debe marcar como paquete candidato para lanzamiento en Lifecycle Services, los paquetes que estén marcados como candidatos pueden ser implementados en el ambiente Productivo.

En la Biblioteca de activos tendremos un mejor control de versiones de paquetes que han resultado exitosos en ambientes de UAT y pueden ser reutilizados en algún otro momento para restauración.

En LaSo Consulting nos enfocamos en el correcto flujo de proceso y mejores prácticas en la aplicación de desarrollos, personalizaciones y actualizaciones del sistema Microsoft Dynamics 365 for Finance and Operations para garantizar la estabilidad y efectiva operación de nuestros clientes con su sistema en sus diferentes ambientes incluyendo todas sus necesidades de negocio.