Microsoft Dynamics AX es completamente personalizable. La mayoría del código utilizado por Dynamics AX está escrito en X++ y es visible y editable en el AOT (Árbol de Objetos de Aplicación). Esta característica proporciona a los desarrolladores la capacidad de agregar, eliminar e incluso reemplazar la funcionalidad intrínseca de Dynamics AX dentro del sistema. Algunos desarrolladores son más cautelosos que otros, algunos son más detallados que otros y algunos de ellos dedican más tiempo y recursos a probar los cambios que han realizado en el sistema. Pero después de todo, todos somos humanos y podemos cometer errores. Teniendo esta cantidad de poder, un desarrollador podría potencialmente hacer que el sistema sea inutilizable. El enfoque de Microsoft para este problema fue introducir el concepto de capas.

Una capa es una ubicación jerárquica donde reside el código. De izquierda a derecha, estas son las capas más comunes disponibles en un sistema Dynamics AX estándar: SYS > GLS > FPK > SLN > ISV > VAR > CUS > USR. Cada capa es completamente independiente de las otras capas. Especificas a qué capa conectarte al configurar el perfil del cliente de AX. La capa inferior será la capa SYS y aquí es donde se encuentra el código de aplicación estándar, y solo es accesible por Microsoft. Otras capas como ISV (Proveedor de Software Independiente), VAR (Revendedor de Valor Agregado) se pueden acceder ingresando claves que Microsoft proporciona para cada capa, excepto USR (Usuario) que no requiere una clave. Por lo tanto, el objetivo de las capas es proporcionar a los desarrolladores la opción de modificar el código de Microsoft, pero solo en una de las capas a las que el desarrollador tiene acceso.

Cada vez que un desarrollador realiza un cambio en un objeto de Dynamics AX en el AOT, se toma una copia (versión) del objeto de una capa del sistema a la capa a la que el desarrollador está conectado. Si hay múltiples versiones del mismo objeto en diferentes capas, entonces la capa superior tendrá prioridad y se utilizará.

Veamos un ejemplo: Dynamics AX estándar viene con una tabla llamada ALPHABET que consta de las columnas A, B y C. Si no se realizan cambios en otras capas, el usuario final verá la tabla exactamente como en la capa SYS. Si un desarrollador inicia sesión en Dynamics AX en la capa VAR y agrega la columna D a la tabla, esto es lo que sucede. Finalmente, si un desarrollador en la capa USR decide eliminar las columnas B y C, así es como la definición de la tabla será vista por el usuario final. Como puedes ver, siempre se utilizará la capa superior y, en este caso, no importará si sigues agregando columnas a la definición de la tabla en la capa VAR, ya que esas nuevas columnas no estarán disponibles para el usuario final, ya que la capa USR tiene prioridad.

Escrito por Eduardo Sicouret, Consultor Técnico de Dynamics AX para Tridea Partners. Tridea es un proveedor líder de Microsoft Dynamics AX.