9.3/17 Tipos de relaciones

Normal: Es la más simple de todas y relaciona un campo de una tabla con otro de otra.

Ésta es la que vimos en el post anterior.

Relación Normal

Campo Relacionado Fijo:  En este caso vamos a relacionar la tabla FarmTrans con la FarmTable pero solo con las que estén activas.(campo Active = yes)
En la tabla FarmTable he creado un campo para indicar si la granja está activa (Campo Active.) y quiero que en la FarmTrans estén relacionadas sólo las activas.


Este tipo de relación se acostumbra a utilizar con campos de tipo enumerado.

Empecemos:

En la relación que creamos anteriormente le indicaremos que vamos a crear una nueva de tipo campo relacionado fijo.


Posteriormente en las propiedades le indicaremos el campo de la otra tabla , en este caso active y el valor que debe tener este campo para que esté relacionada.


Recordad que los enumerados son enteros para este ejemplo el campo Active extiende del EDT NoYesId cuyos valores son 0-No 1-Yes.

Ahora se mostrarán en el lookup los que estén activos en la tabla FarmTable.



Campo fijo: No es muy utilizada, pero su función es la misma que para el campo relacionado fijo pero esta vez para la tabla en la que estamos creando la relación.

Imaginad que solo queremos que se muestren en el desplegable granjas cuando en nuestra tabla de transacciones tengan marcado el check de transaccion abierta.

Fijaos que me he creado un campo de tipo NoYes llamado transopen, si intentais desplegar las granjas vereis que se os mostrarán todas.


Crearemos la relación de tipo Campo Fijo partiendo siempre de nuestra relación normal creada en el primer ejemplo.



En las propiedades de esta nueva relación le indicaremos el campo de la tabla FarmTrans y su valor, al igual que hicimos en el ejemplo anterior.


Si desplegáis el lookup de granjas vereis que solo se muestran granjas en caso de que esté el check TransOpen marcado.


Ventajas de crear relaciones.

Para finalizar únicamente quería comentar las ventajas de crear relaciones en la tablas; la principal es el lookup automático que se genera, pero no solo se ha creado un lookup sino que el hecho de haber creado la relación, hará que se valide que el valor introducido sea correcto. Imaginad que entramos el valor Granja1111, automáticamente AX valida que ese valor no existe en la tabla FarmTable por lo que nos devolverá un error.



El lookup es creado de forma automática con sólo el valor del campo FarmId, si os acordais de los grupos de campos que por defecto traen las tablas, existía el grupo autolookup, el cual podríamos modificar asignádole el campo FarmId y Name, así el desplegable nos mostraría los dos campos y serian más fácil de identificar el registro.
Si no ha sido modificado el grupo AutoLookup, AX toma por valor para el desplegable los campos que forman el índice primario, de no existir ninguno de los dos, lo forma con los primeros campos que se crearon en la tabla.




Las propiedades de las relaciones.



Faltará explicar las propiedades de las relaciones, las que se ven en la imagen: 


Pero no hay mejor explicación que la de la MSDN, como mínimo se deben rellenar las propiedades Name y Table, las otras son opcionales, si las rellenáis mejorará el rendimiento.

Comentarios