Objetivo
Esse documento irá mostrar como criar um relacionamento entre tabelas de um Metadados.
Criando Tabelas
Iremos criar duas tabelas, TESTERELACIONAMENTO e TESTERELACIONAMENTOFILHA.
A coluna CPF nas duas tabelas são chaves primárias.
Criando o Relacionamento entre as tabelas
Iremos agora criar a relação entre as duas tabelas.
Criar o relacionamento entre elas, usando as chaves CPF como CHAVE e CHAVEESTRANGEIRA.
Observação
Caso a relação possua duas ou mais chaves, dê preferência em adicionar a primeira chave e Salvar, então depois adicionar as seguintes.
O Nome do Relacionamento tem tamanho máximo de 30 caracteres.
Relacionamento com duas ou mais chaves
O relacionamento entre tabelas do Metadados espera que seja criado com todas as chaves primárias da tabela Pai.
Sendo assim, quando a tabela Pai tiver 1 chave primária, o relacionamento deve ter 1 única definição de relação.
Quando a tabela Pai tiver 2 ou mais chaves primárias, o relacionamento também deverá ter todas as chaves relacionadas.
Validação do Relacionamento
A partir da versão 12.1.2306 será realizada uma validação das chaves ao salvar o relacionamento.
Somente será possível criar relacionamentos desde que todas as chaves da tabela Pai estejam também informadas no relacionamento.
Regra Update / Regra Delete
No Relacionamento podemos aplicar operações para atualizar ou excluir o registro da tabela pai, podendo haver diferentes requisitos sobre o efeito nos valores associados em tabelas filho.
Há quatro opções disponíveis:
Especificação | Update na tabela Pai | Delete na tabela Pai |
NO ACTION | Nenhuma ação será executada. | Nenhuma ação será executada. |
CASCADE | Valores associados na tabela filha também serão atualizado. | Registros associados em tabela filha também serão excluídos. |
SET NULL | Valores associados na tabela filha serão definidos como NULL. | Valores associados na tabela filha serão definidos como NULL. |
SET DEFAULT | Valores associados na tabela filha serão definidos para o valor padrão especificado na definição da coluna; o valor padrão deverá estar presente na coluna de chave primária. | Valores associados na tabela filha serão definidos para o valor padrão especificado na definição da coluna; o valor padrão deverá estar presente na coluna de chave primária. |
Configurando o Modelo de Negócio
Iremos agora configurar o modelo de Negócio.
1) Adicionar uma nova tabela:
OBS: caso o relacionamento já tenha sido criado, as tabelas relacionadas serão apresentadas, como abaixo:
Clicando no OK, a estrutura de tabelas do modelo de negócio ficará assim:
IMPORTANTE
Caso o relacionamento não tenha sido criado antes na etapa anterior e precise ser realizado por aqui, deve ser seguido os mesmos critérios, Relacionamento veja mais informações.
Configurando a Apresentação do Formulário
Iremos agora configurar a apresentação de formulário
Nesse caso, apenas as Abas (Teste Relacionamento) e (Teste Relacionamento Filha) foram criadas.
Criando e Gerando um Projeto de Metadadados
Iremos agora criar um projeto de metadados e iremos compila-lo afim de poder usá-lo.
Defina o nome do projeto, versão e os demais campos, e defina também o local onde estará localizado o metadado.
Após configurar o projeto, vá em processos e Gerar Projeto de Metadados
Clique em executar.
Caso o processo termine em sucesso, vamos prosseguir para o formulário criado.
Acessando um formulário criado
Iremos agora acessar um formulário criado.
Acesse em Seviços Globais >> Customização >> TESTERELACIONAMENTOPRJ
Crie um novo registro.
Observe que as duas tabelas estão presentes no fomulário.
As tabelas filhas estão disponíveis separadas por abas.
Relacionamento entre dois metadados
Existe a possibilidade de se relacionar dois metadados entre si, porém as tabelas deles terão que estar relacionadas, ou seja, a relação PK / FK deve existir no banco de dados.
Sem esse relacionamento vários erros conceituais podem acontecer, como alterar uma chave primária em um metadados e um lookup em outro que dependia do valor, passar a não funcionar corretamente.
Por isso é necessário o relacionamento pré-existente entre as tabelas desses metadados.
Utilizando as tabelas relacionadas TESTERELACIONAMENTO e TESTERELACIONAMENTO2, conseguimos relacionar dois metadados diferentes de forma correta.
O exemplo abaixo mostra a tentativa de alterar uma chave primária, onde uma exceção é levantada.
Observe que existe um vinculo entre os registros
PESSOA de CPF 2 de nome Laura e DEPENDENTE de CPF 2, por isso a exceção acima foi levantada.