INSTITUCIONAL
COMUNIDAD
BLOG
AYUDA
MI CUENTA
EN PT ES

Imagen6239S

Subtipos en la versión Olimar de GeneXus

Los cambios que incluye la versión Olimar de GeneXus en relación con el uso de subtipos benefician a la integridad referencial, mejoran la performance, la programación y su uso en general. Por Pablo Mazzilli, del equipo de soporte de ARTech.

Las relaciones entre atributos GeneXus se establecen a través de sus nombres, por lo que es importante asignar igual nombre a aquellos atributos que corresponden a un mismo concepto y distinguir aquellos que son diferentes conceptualmente con nombres distintos.

Sin embargo, a veces resulta necesario dar diferentes nombres a atributos que conceptualmente son lo mismo. Para estos casos, GeneXus provee los Subtipos que permiten establecer que dos atributos con diferente nombre refieren a un mismo concepto. 

Los casos típicos de uso de Subtipos son:

1-     Cuando se quiere incluir varias instancias de un mismo atributo en una transacción (Múltiples instancias)

2-     Especialización (Clientes y Proveedores como subtipos de Empresa)

3-     Evitar controles de integridad referencial

La versión Olimar de GeneXus incluye nuevas características y varias mejoras en relación con el manejo de subtipos de las cuales se destacan por su importancia las siguientes:

1-     Se puede definir subtipos anidados (subtipos de subtipos) obteniendo los valores inferidos.

En el siguiente ejemplo, se puede obtener el nombre del cliente en la Transacción "Clientes que Compraron" (CliCmpNom)

 

Transacción Personas

PerCod*

PerNom

Transacción Clientes

CliCod*            subtipo de Clientes.PerCod

CliNom             subtipo de Clientes.PerNom

CliDir

Transacción Clientes que Compraron

CliCmpCod*            subtipo de CliCmp.CliCod

CliCmpNom            subtipo de CliCmp.CliNom

CliCmpRuc

2-     Se puede definir subtipos y supertipos en la misma tabla extendida (por ejemplo en la misma Transacción)

Ejemplo:

En la siguiente Transacción se ingresan los empleados y el gerente de cada uno, quien a su vez es también empleado de la empresa.

 

Transacción Empleado

EmpCod*         

EmpNom          

EmpGteCod             subtipo de Gerente.EmpCod

EmpGteNom            subtipo de Gerente.EmpNom

 

EmpGteNom se infiere de la misma tabla y además se realiza el control de integridad referencial de la tabla consigo misma en EmpGteCod.

3-     Ahora es posible actualizar subtipos inferidos en las reglas de una Transacción o en un Procedimiento.
Ej: uso de la regla add y substract en Transacciones.

4-     Se permite ordenar por subtipo inferido en un For Each.

5-     Se pueden definir fórmulas verticales basadas en atributos que sean subtipos.

6-     Se incluyeron controles en tiempo de especificación en la definición de grupos de subtipos que disparan alertas cuando estos no están correctamente definidos. Esto permite detectar en forma oportuna la generación de combinaciones no válidas de subtipo/supertipo. También se agregaron controles en cuanto al uso de subtipos en los objetos advirtiendo referencias ambiguas o supertipos que no pueden ser instanciados.


Además, el uso de subtipos en la versión Olimar se ve beneficiado por las mejoras realizadas en la reorganización de GeneXus. A partir de esta versión se evita la reorganización en dos pasos al sustituir un supertipo por un subtipo, así como se evitan posibles errores de integridad referencial durante la reorganización (por ejemplo al crear supertipos a partir de subtipos).
Más información en GXDL: Subtipos

 

 

Relacionado
Se liberó la beta 3 de la versión Olimar de GeneXus
De la versión Olimar de GeneXus: Objeto Theme (I)
Primer sistema desarrollado con el generador Pocket PC
GeneXus Inc. lanza nuevo sistema de soporte en línea
Reorganización de la base de datos en GeneXus
De la versión Olimar de GeneXus: Validación en el cliente
GeneXus libera su próxima versión
#Destrancate: Este 25 de abril acercate a la nueva propuesta del GUG Montevideo