FAQs Curso GeneXus Core (v18)
-
Transações
-
-
Ocultar um atributo no layout da Web
-
Erro no Data Provider associado a uma Transação (processo de carregamento de dados): Attribute does not have the "visible" property
-
Erro na fórmula global: referência ao mesmo atributo ao qual a fórmula está associada:Fórmula XXX (directly or indirectly) references itself
-
-
Pattern Work With e Transações
-
Grupo de Subtipos
-
Procedimentos
-
GeneXus Server
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
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