FAQs Curso GeneXus Core (v18)
-
Transacciones
-
-
Ocultar un atributo en el Web layout
-
Error en Data Provider asociado a una Transacción (proceso de carga de datos): Attribute does not have the "visible" property
-
Error en fórmula global: referencia al mismo atributo al que se asocia la fórmula: Fórmula XXX (directly or indirectly) references itself
-
-
Pattern Work With y Transacciones
-
Grupo de Subtipos
-
Procedimientos
-
GeneXus Server
Autonumerar el segundo nivel de una transacción
Dado que la propiedad Autonumber solo puede aplicarse a claves primarias únicas, para numerar un segundo nivel debe utilizarse la regla Serial.
Esta regla requiere definir un atributo en el primer nivel de la transacción, que guardará el último valor asignado a las líneas del segundo nivel.
Veamos esto con un ejemplo.
Supongamos que tenemos la siguiente transacción de dos niveles, para manejar los países y sus ciudades:
La tabla física generada a partir del segundo nivel de esa transacción es COUNTRYCITY, compuesta por:
Es importante notar que la clave primaria de la tabla generada a partir del segundo nivel es una clave compuesta (por CountryId y CityId).
Al autonumerar CityId, solo estaríamos autonumerando una parte de la clave de la tabla, por lo que GeneXus lanza un Warning especificando esto.
Por este motivo es que GeneXus provee una alternativa para poder autonumerar un segundo nivel, que es utilizando la regla Serial.
Para eso, coloque la siguiente regla en la transacción Country:
Serial(CityId, CountryCitySerial, 1);
Siendo CityId el atributo que se desea autonumerar, CountryCitySerial un nuevo atributo numérico del primer nivel de la transacción Country que guarda el último identificador de ciudad ingresado, y 1 el incremento que se desea entre registro y registro.
Puede acceder a la documentación completa desde el siguiente link:
https://wiki.genexus.com/commwiki/servlet/wiki?6866,Serial%20rule
Esta regla requiere definir un atributo en el primer nivel de la transacción, que guardará el último valor asignado a las líneas del segundo nivel.
Veamos esto con un ejemplo.
Supongamos que tenemos la siguiente transacción de dos niveles, para manejar los países y sus ciudades:
La tabla física generada a partir del segundo nivel de esa transacción es COUNTRYCITY, compuesta por:
Es importante notar que la clave primaria de la tabla generada a partir del segundo nivel es una clave compuesta (por CountryId y CityId).
Al autonumerar CityId, solo estaríamos autonumerando una parte de la clave de la tabla, por lo que GeneXus lanza un Warning especificando esto.
Por este motivo es que GeneXus provee una alternativa para poder autonumerar un segundo nivel, que es utilizando la regla Serial.
Para eso, coloque la siguiente regla en la transacción Country:
Serial(CityId, CountryCitySerial, 1);
Siendo CityId el atributo que se desea autonumerar, CountryCitySerial un nuevo atributo numérico del primer nivel de la transacción Country que guarda el último identificador de ciudad ingresado, y 1 el incremento que se desea entre registro y registro.
Puede acceder a la documentación completa desde el siguiente link:
https://wiki.genexus.com/commwiki/servlet/wiki?6866,Serial%20rule