Relacionamento
Nesta seção
Entenda os campos de relacionamento do ENSPACE
Os campos de relacionamento do ENSPACE permitem conectar registros de categorias diferentes.
Imagine que você tem uma planilha de Clientes e outra de Pedidos. Em vez de digitar o nome do cliente em cada pedido, você cria um vínculo direto: o sistema mostra a lista de clientes e você apenas seleciona um. Se os dados do cliente mudarem, o vínculo permanece intacto.
Eles podem ser usados para:
- evitar digitação repetida de dados que já existem em outra categoria;
- garantir que informações relacionadas estejam sempre corretas e atualizadas;
- navegar rapidamente entre registros conectados;
- criar estruturas de dados complexas (projetos com responsáveis, pedidos com produtos);
- aplicar regras automáticas de vínculo entre categorias.
Tipos disponíveis e quando utilizar
Relacionamento Simples
Campo para selecionar apenas um item de outra categoria. Ideal para vincular um único registro, como um cliente em um pedido ou um responsável em um projeto.
Relacionamento Múltiplo
Campo para selecionar vários itens de outra categoria. Ideal para vincular múltiplos registros, como produtos em um pedido ou participantes em um projeto.
Comparação entre os campos
| Recurso | Relacionamento Simples | Relacionamento Múltiplo |
|---|---|---|
| Quantidade de itens vinculados | Apenas um | Vários |
| Exibe lista de registros | Sim | Sim |
| Permite criar novo registro pelo campo | Sim | Sim |
| Possui aba de itens relacionados | Não | Sim |
| Possui dependência entre categorias | Sim | Sim |
| Formato de visualização configurável | Sim | Sim |
| Permite agrupar itens na lista | Sim | Sim |
| Permite filtrar por formulários | Sim | Sim |
Como os campos de relacionamento funcionam
Os campos de relacionamento funcionam como uma ponte entre duas categorias.
Quando você configura o campo, define qual categoria será a "outra ponta" da ponte. O sistema então exibe uma lista com todos os registros daquela categoria, permitindo que o usuário selecione um ou mais itens para vincular.
Diferença entre Relacionamento Simples e Múltiplo
| Campo | Representa |
|---|---|
| Relacionamento Simples | Um único vínculo (ex: um cliente por pedido). |
| Relacionamento Múltiplo | Vários vínculos simultâneos (ex: vários produtos por pedido). |
Recursos compartilhados
Ambos os campos compartilham as mesmas configurações de vínculo e exibição.
Configurações básicas
Durante a criação do campo, você define:
| Configuração | Descrição |
|---|---|
| Categoria | Define qual outra categoria será relacionada. |
| Formulários (opcional) | Formulário exibido ao clicar em "Novo" para criar um item diretamente pelo campo. |
| Formato de Visualização | Informação usada para identificar cada item na lista (ex: nome, código, e-mail). |
| Agrupar por | Campo usado para agrupar itens na lista (ex: agrupar clientes por cidade). |
| Formulários usados para filtrar | Permite mostrar na lista apenas itens de formulários específicos. |
| Desanexar Agrupamento | Remove agrupamentos previamente definidos. |
| Desabilitar Criação | Impede que novos itens sejam criados diretamente pelo campo de relacionamento. |
Campo de relacionamento obrigatório
Um campo de relacionamento pode ser marcado como obrigatório, exigindo que o item aponte para um registro da outra categoria antes de ser salvo. Quando duas categorias se exigem mutuamente, isso levaria a um impasse: o primeiro item não poderia ser criado, porque o registro que ele precisa apontar ainda não existe.
O ENSPACE resolve esse impasse com um vínculo temporário. Ao abrir o formulário, o sistema já gera a referência do item que está sendo criado, mesmo antes de ele ser salvo. Com essa referência disponível, você cria o registro da outra categoria pelo próprio campo, em Novo, e o vínculo entre os dois é registrado na hora.
O que acontece com esse vínculo depende do desfecho do formulário principal:
- Ao salvar — os vínculos temporários são convertidos em permanentes, e os dois registros passam a existir normalmente.
- Ao cancelar — o registro criado por esse caminho e os vínculos dele são removidos, sem deixar item solto na outra categoria.
O comportamento é o mesmo no formulário aberto em página completa e no modal de criação embutido no campo. Não há diferença visual entre um vínculo temporário e um permanente: a distinção é interna e só existe enquanto o formulário principal não foi salvo.
Dependência entre categorias
A dependência é um recurso avançado que cria um vínculo automático e de duas vias entre categorias.
Quando habilitada:
- ao relacionar um item na categoria A, o sistema cria automaticamente o mesmo vínculo na categoria B;
- é necessário criar um campo de relacionamento correspondente na outra categoria para que a dependência funcione;
- o campo dependente na outra categoria deve ser configurado como obrigatório.
Regras de dependência
O sistema aplica validações automáticas para manter a integridade dos dados:
Criação de itens
- O campo dependente se torna obrigatório durante a criação.
- Se o campo de relacionamento não for preenchido, o item não será criado — mesmo que o campo esteja oculto no formulário.
- Quando a criação ocorre pela aba de relacionamento (no campo múltiplo), o vínculo é feito automaticamente, permitindo a criação sem erros.
Exclusão de itens
- Antes de excluir, o sistema verifica se o item está vinculado a outros por meio de campos com dependência.
- Se estiver vinculado:
- a referência é removida automaticamente dos itens relacionados;
- o item excluído será apenas inativado (não desaparece do sistema);
- caso seja reativado posteriormente, o vínculo não será restaurado automaticamente.
Edição de itens
- Itens removidos do campo com dependência terão a referência removida automaticamente na outra categoria.
- Itens adicionados terão a referência incluída automaticamente.
- Essa lógica funciona tanto para Relacionamento Simples quanto para Relacionamento Múltiplo.
Dependência só funciona entre campos de primeiro nível
A dependência é um vínculo entre itens: ao relacionar um item na categoria A, o sistema precisa gravar a referência de volta dentro de um item da categoria B. Isso exige que os dois lados sejam campos criados diretamente na categoria, no primeiro nível.
O motivo é estrutural: uma linha de Repetidor não é um item com identificador próprio, e sim um valor guardado dentro de um item. Como não existe entidade do outro lado para receber o vínculo inverso, não há onde gravá-lo.
O que continua funcionando dentro de um Repetidor ou Grupo: o relacionamento como apontamento simples — escolher um item de outra categoria e guardar essa referência na linha. O que não existe nesse contexto é o vínculo automático de duas vias.
Quando você precisa de vínculo de duas vias: use categorias relacionadas inteiras em vez de subcampo de estrutura aninhada. Em vez de um Repetidor "Etapas da Obra" com um subcampo de relacionamento, crie uma categoria Etapas com um campo de relacionamento de primeiro nível apontando para Obras, e configure a dependência entre as duas categorias.
Aba de Itens Relacionados
Disponível exclusivamente no campo Relacionamento Múltiplo.
Quando habilitada, cria automaticamente uma nova aba na pasta do item atual, exibindo uma tabela com todos os registros vinculados.
Essa aba permite:
- visualizar os registros relacionados;
- criar novos itens já vinculados ao item atual;
- editar ou desvincular itens diretamente pela interface.
Comportamento dos dados
As configurações aplicadas nos campos de relacionamento afetam diretamente a integridade dos registros.
Isso significa que:
- alterar o formato de visualização não modifica o vínculo, apenas a forma como o item aparece na lista;
- remover um campo de relacionamento não exclui os registros da outra categoria, apenas remove o vínculo;
- ativar a dependência após a criação de registros antigos não cria vínculos retroativos automaticamente;
- itens inativados por dependência podem ser reativados, mas os vínculos precisam ser reconstruídos manualmente.
Algumas alterações afetam apenas novos preenchimentos.
Exemplo:
- adicionar um filtro de formulário não remove vínculos antigos;
- alterar o campo "Agrupar por" reorganiza apenas a exibição, não os dados;
- desabilitar a criação de novos itens pelo campo não afeta registros já existentes.
Casos de uso
- Relacionamento Simples: selecionar um cliente em um pedido, associar um responsável em um projeto, relacionar uma empresa em um contrato, escolher um analista para uma solicitação, definir um fornecedor para uma compra.
- Relacionamento Múltiplo: selecionar vários produtos em um pedido, associar diversos participantes em um projeto, relacionar várias tarefas em um processo, escolher múltiplos analistas para uma solicitação, vincular documentos anexos a um processo.
Boas práticas
- Utilize Relacionamento Simples quando a regra de negócio permitir apenas um vínculo (ex: um pedido pertence a um único cliente).
- Utilize Relacionamento Múltiplo quando vários registros puderem ser vinculados simultaneamente (ex: um projeto tem vários participantes).
- Configure o Formato de Visualização com informações únicas e identificáveis para facilitar a busca na lista.
- Utilize Agrupar por quando a lista de itens for longa, organizando por cidade, status ou outro critério relevante.
- Habilite a Dependência apenas quando for estritamente necessário manter vínculos de duas vias, pois aumenta a complexidade da configuração.
- Ao habilitar dependência, crie sempre o campo correspondente na outra categoria antes de começar a criar registros.
- Lembre-se de que itens excluídos com dependência ativa são apenas inativados. Revise periodicamente itens inativados para manter a base de dados organizada.
- Utilize a Aba de Itens Relacionados no campo múltiplo para criar um painel de gestão dentro da pasta do registro principal.