martes, enero 08, 2013

AX 2012: MAPAS DESDE AOT

 
Mapas

Los mapas son objetos que asocian un campo del mapa con un campo en una o más tablas. Esto permite utilizar el mismo nombre del campo para acceder a campos con diferente nombre en diferentes tablas. Los métodos del mapa le permiten crear o modificar métodos que actúan en los campos del mapa.

Una tabla puede ser accedida a través de más de un mapa. Típicamente, si más de un mapa accede a la misma tabla, cada mapa accede a diferentes subconjuntos de campos en el mapa. Los mapas no definen objetos de base de datos y así los mapas no se sincronizan con la base de datos.   

Beneficios

Simplicidad. Los mapas proporcionan una interfaz simple a los campos en múltiples tablas. Esto quiere decir que cualquier objeto que hace referencia al campo del mapa puede ser utilizado contra múltiples tablas sin cambiar ningún nombre del campo.
Consistencia.- los campos de las tablas con nombres variados pueden ser accedidos en código de una manera consistente. Por ejemplo utilizando un mapa, los campos nombrados Zip en una tabla, ZipCode en otra, y PostalCode en otra tabla pueden todos ser accedidos por el nombre ZipCode.  

Reutilización de código. Un método del mapa permite añadir código que se ejecute contra los campos del mapa. Un método sencillo del mapa previene la duplicidad de métodos y código en cada tabla.

Elementos del Mapa

Fields. El nodo Fields contiene los elementos del campo del mapa. Cada campo debe ser del mismo tipo de dato a la cual es asociado.
Field Group. Contiene grupo de campos asociados lógicamente. Trabajan de la misma forma que en las tablas.

Mappings. Es el lugar donde los campos del mapa son asociados con los campos de las tablas. Aquí están las tablas que el mapa combina. Sobre cada tabla puede ver cual campo de la tabla está asociado con un campo del mapa. Si un campo existente en el mapa no está asociado a un campo particular de la tabla, solo dejar la propiedad MapFieldTo en blanco.

Methods. Despliega todos los métodos disponibles para el mapa. En este nodo puede añadir nuevos métodos o sobrescribir métodos de la clase kernel xRecord y añadir su propio código.
 
EJERCICIO
·         Crear un Mapa utilizando el AOT
 
1.      Crear dos tablas con la siguiente estructura de datos:
 

 
2.      En el AOT expandir el Data Dictionary, click derecho en Maps y luego en Nuevo Mapa. Establecer el nombre del mapa CustVendMyMap
 

3.      Expandir el nuevo mapa, click derecho en Fields, click en Nuevo, luego seleccionar el tipo de dato para añadir un campo al mapa.
 También puede utilizar la funcionalidad de “Arrastrar y Soltar” para añadir los campos del mapa.
 

 
4.      Repetir el paso 2 para añadir más campos al mapa.
5.      Si el campo del mapa está asociado con un campo de la tabla que es un tipo de dato extendido, establecer la propiedad ExtendedDataType.
6.      Organizar los campos relacionados en grupos.
7.      Asociar los campos del mapa con campos específicos de la tabla.
 
a. Click derecho sobre Mappings, luego click en Nuevo Mapping. Un nuevo mapeo es añadido con todos los campos del mapa definidos en el paso 2.

b.Click derecho en el nuevo mapeo, click en Propiedades, luego establecer la tabla en la propiedad MappingTable. Seleccionar como valor de esta propiedad la tabla CustBirthDay

c. Expandir el nuevo mapeo y luego click derecho en nodo campo.
d.                      Click en Propiedades, y luego seleccionar un campo desde la lista de la propiedad MapFieldTo.
 

 
La lista de campos disponibles varía dependiendo del tipo de dato que seleccionado en el paso 2.
e. Repetir el paso 6d para cada nodo de campo que está desplegado abajo del nuevo mapeo.

8.       Grabar los cambios del mapa.
9.      En el nuevo Mapa creado nos ubicamos en el nodo Methods, click derecho y seleccionamos cancelar método y luego validateWrite
 

 
10.  Reemplazamos el código por lo siguiente:

11.  Grabar los cambios del mapa.
12.  En el AOT buscamos la tabla VendBirthDay.
13.  Ubicamos el nodo Methods, click derecho y seleccionamos cancelar método y luego validateWrite

14.  Añadimos desde el editor de código la siguiente línea:

15.  Creamos un nuevo Job para la ejecución de nuestra pruebas
 
 

No hay comentarios: