FAQs Curso

Autonumerar o segundo nível de uma transação

Como a propriedade Autonumber só pode ser aplicada a chaves primárias únicas, para numerar um segundo nível deve ser usada a regra Serial.
Essa regra requer a definição de um atributo no primeiro nível da transação, que salvará o último valor atribuído às linhas do segundo nível.

Vamos ver isso com um exemplo.
Suponha que tenhamos a transação de dois níveis a seguir, para gerenciar os países e suas cidades:


A tabela física gerada a partir do segundo nível dessa transação é COUNTRYCITY, composta de:


É importante observar que a chave primária da tabela gerada a partir do segundo nível é uma chave composta (por CountryId e CityId).
Ao autonumerar o CityId, estaríamos apenas autonumerando uma parte da chave da tabela, então GeneXus envia um aviso especificando isso.


Por este motivo, GeneXus oferece uma alternativa para poder autonumerar um segundo nível, que está usando a regra Serial.
Para isso, coloque a seguinte regra na transação Country:

Serial(CityId, CountryCitySerial, 1);  

Sendo CityId o atributo que se deseja autonumerar, CountryCitySerial será um novo atributo numérico do primeiro nível da transação Country que armazena o último identificador de cidade inserido e 1 o incremento desejado entre o registro e o registro.

Você pode acessar a documentação completa no seguinte link:
https://wiki.genexus.com/commwiki/servlet/wiki?6866,Serial%20rule