[AX 2012 R3] Introducción al desarrollo
El desarrollo en Dynamics AX puede verse complejo a primera vista, de hecho, me ha costado un poco acostumbrarme al mismo. Pero una vez que le tomas la mano se vuelve como cualquier desarrollo de sistemas (con la ventaja que tienes casi todo desarrollado).
El principal problema radica en que no hay mucho material para desarrollo sobre Dynamics AX en el idioma español, por lo cual este blog podría ser uno de ellos :P
Una buena recomendación es leer
este libro que es de mucha ayuda para principiantes e intermedios en dicha plataforma.
En este documento, iré exponiendo los siguientes puntos a tenerlos en cuenta:
- Arquitectura.
- Data Dictionary (Diccionario de datos).
- Interfaz de Usuarios.
Arquitectura
I. Arquitectura en 3 capas
Básicamente el Dynamics AX posee una arquitectura en tres capas definida por las siguientes:
1. Base de datos
Cómo base de datos utiliza el SQL Server, donde se almacenan todos los datos de los diferentes modelos.
2. Servidor
En esta capa seleccionamos el Application Object Server (AOT) donde se definen todos los objetos que son utilizados dentro del Dynamics AX. En el mundo .NET esta capa sería BLL (Business Logical Layer).
3. Cliente
En la gráfica se vuelve a subdividir en dos grupos:
3.1. Dynamics AX Client
Es la capa que corresponde a la interfaz del usuario, lo que el usuario utiliza para realizar todas las operaciones que ofrece el Dynamics AX, respetando privilegios y permisos asignados al usuario en cuestión. Este cliente es una aplicación de escritorio.
3.2. Enterprise Portal
Esta interfaz es Web, lo cual permite acceder al Dynamics AX desde cualquier navegador, convirtiéndolo en multiplataforma.
II. Ambiente de desarrollo
1. AOT
El AOT provee una representación visual de todos los elementos que componen el Dynamics AX.
2. Etiquetas
Las etiquetas corresponden a textos que se asocian a un determinado lenguaje (idioma) para permitir la localización de los recursos de la aplicación.
3. IDE
El MorphX es el ambiente de desarrollo integrado que utilizamos para desarrollar dentro del Dynamics AX. Debemos tener en cuenta que a dicho IDE se ingresa desde el servidor y con el Dynamics AX Client instalado.
4. Lenguaje de programación
El lenguaje de programación que utilizamos en esta plataforma es X++, muy similar a C# en el mundo .NET. Posee su propio depurador, búsqueda de tablas, editor de código y herramientas para ingeniería inversa.
5. Visual Studio
La integración con Visual Studio es completa desde la creación de reportes SSRS (SQL Reporting Services), desarrollo del Enterprise Portal, hasta la creación de librerías a ser utilizadas dentro del AOT.
III. Arquitectura basada en modelo
Dynamics AX se basa en distintos modelos, los cuales están separados por precedencia, siendo la capa superior la que se toma por sobre las demás.
En este caso, la capa SYS es la capa más baja por lo cual sería sólo se utilizaría si un objeto no ha sido modificado en ninguna de las capas superiores.
Por ejemplo, se modificó un reporte en la capa CUS. En la capa USR, también se modificó el mismo reporte. Se compilaron y guardaron ambos cambios. En ese caso, cuando el usuario vea el reporte verá siempre el que esté en la capa superior, en este caso la capa USR.
Data Dictionary
Muchos son los elementos que componen este grupo dentro del AOT, pero aquí trataré los más utilizados y que considero básicos
I. Tipos de datos
Los tipos de datos representan la base para la creación de campos en una tabla. Existen dos grupos de tipos de datos:
1. Primitivos
Los tipos de datos primitivos consisten en los tipos de datos base de cualquier lenguaje de programación. Como ejemplo tenemos
int,
double,
str,
Enum, etc.
2. Extendidos
Los tipos de datos extendidos como su nombre lo indica extienden los tipos de datos primitivos. Generalmente estos tipos de datos extienden de
Enum, pero también se pueden extender los demás tipos de datos.
Por ejemplo, en la tabla
CustTable el nombre del cliente tiene un tipo de dato extendido
NombreCust que tiene una longitud de 30. En la tabla
VendTable tenemos el nombre del proveedor con otro tipo de dato extendido
NombreProv pero con una longitud de 40.
II. Tablas
Sobre las tablas no hay mucho que decir, pues poseen el mismo concepto que una tabla en base de datos, de hecho una tabla dentro del AOT es una tabla en la base de datos SQL Server. Lo único que cabe destacar es que estas tablas dependen de los tipos de datos creados.
III. Base Enumerations
Las enumeraciones base son aquellos conjuntos de datos que utilizamos para agrupar una serie de datos que serían constantes en una aplicación. Por ejemplo, el
Sexo donde especificaremos
Masculino o
Femenino.
IV. Views
Las Vistas tienen el mismo concepto y forma de utilizar que una Vista en SQL Server. No existe ninguna diferencia. Al crear una Vista en el AOT también se creará en el SQL Server.
Interfaz de Usuario
En este caso, la interfaz de usuario corresponde a todos los elementos que son visibles para el usuario. Como siempre, citaré los básicos como introducción.
I. Formularios
Los formularios, tal como los WinForms, son ventanas que los usuario pueden visualizar para realizar distintas acciones. Cada formulario posee un código a ejecutar, un DataSource y un diseño que determinará lo que el usuario puede ver, hacer y ejecutar siguiendo algunos pasos.
II. Data Sources
Los Data Sources son los orígenes de datos que se utilizarán en el diseño del formulario para mostrar datos. Por ejemplo, si tenemos el
Data Source asignado a
CustTable, en el diseño podremos colocar cualquier campo de dicha tabla.
III. Menu Items
El menú item se utiliza para crear elementos de menú a ser visualizados en alguna parte de la interfaz de usuario (Ribbon, Menú standard, botones, etc.). EL menú puede llamar a reportes, acciones y/o formularios.
De esta manera concluye este muy escueto tutorial para introducirnos al mundo del desarrollo en Dynamics AX.