Ir para o conteúdo

Tabelas Gerenciadas

No Vinyl, Tabelas Gerenciadas são como tabelas normais, exceto que os dados armazenados nelas são gerenciados ou mantidos pelo Vinyl. Eles são gerenciados por Usuário, Janela ou Sessão, dependendo de como a tabela é configurada quando é criada. Não há limite para o número de tabelas gerenciadas que um aplicativo pode ter configurado.

As tabelas gerenciadas são projetadas para permitir que os desenvolvedores armazenem essencialmente dados temporários sobre um usuário, janela ou sessão. Os dados dessas tabelas são removidos automaticamente após um período de tempo especificado, dependendo do tipo de dados que você está armazenando:

  • Usuário = O Vinyl verifica todas as noites e se o usuário não estiver mais no sistema, será excluído de acordo
  • Janela = O Vinyl verifica a cada 2 dias e exclui conforme necessário
  • Sessão = O Vinyl verifica uma vez por mês e exclui conforme necessário

O caso de uso perfeito para tabelas gerenciadas é para painéis ou páginas de pesquisa que precisam armazenar dados temporários antes de criar uma inserção em uma tabela final, como durante um processo de várias etapas, como um assistente.

Por exemplo: se Usuário for selecionado como Tipo Gerenciado então os dados nesta tabela existirão apenas para o usuário atual logado no Vinyl. Nos bastidores, o Vinyl adiciona uma coluna UserId invisível à tabela gerenciada. Sempre que os dados são selecionados, há um UserId na cláusula where e sempre que os dados são inseridos, o UserId é inserido automaticamente.

Nota

Se você estiver usando tabelas gerenciadas em uma regra CRUD, deverá usar Business Layer ao configurar as informações da regra.

Tipos Gerenciados

O Vinyl permite que você crie tabelas gerenciadas com base nas três opções de critérios a seguir:

  1. Usuário = Usuário atual conectado ao Vinyl.
  2. Janela = Cada janela ou aba de um navegador é identificada exclusivamente.
  3. Sessão = Cada sessão de longa duração do navegador.

Inserção Automática

Inserção automática é uma opção que pode ser configurada ao configurar uma tabela gerenciada. Se ativado, o Vinyl irá "preparar" automaticamente a tabela com pelo menos um registro.

Para painéis de pesquisa, muitas vezes é necessário ter sempre uma linha que existirá na tabela. Se Auto Insert estiver marcado ou habilitado, antes de retornar os dados o Vinyl irá verificar se a tabela está vazia e se estiver, realizará um evento New e depois Insert. Você pode adicionar ações em Inserir e Padrões em Novo para preencher previamente os dados.

Para Criar uma Tabela Gerenciada

  1. Navegue até App Workbench > + Tabela
  2. Selecione a fonte de dados à qual adicionar a tabela (se o aplicativo tiver > 1 fonte de dados)
  3. Atribua Nome à tabela. Por exemplo: Pesquisa
  4. Clique em Salvar
  5. Navegue até Mais > Caso extremo
  6. Defina Finalidade como Tabela Gerenciada
  7. Defina Tipo Gerenciado com o valor que você deseja criar. Por exemplo: usuário
  8. Decida se deseja que o Vinyl Insira automaticamente um registro ou não, se sim, clique para ativar
  9. Clique em Salvar

    tabelagerenciada.png

  10. Na aba Colunas, adicione quaisquer colunas que desejar ao valor Tipo de tabela gerenciada em seu painel. Por exemplo: SearchID, País

  11. Clique em Resultados para visualizar dados em tempo real.

    Nota

    O resultado dinâmico não exibirá um registro preparado

No exemplo aqui descrito, agora você pode utilizar esta tabela em um painel de Pesquisa por País, por exemplo.

Comportamento da Tabela Gerenciada em Regras

Quando uma Tabela Gerenciada é usada em uma regra de negócio, o desenvolvedor tem a capacidade de configurar o comportamento dos registros retornados usando a opção Incluir Bindings.

A configuração padrão para Incluir Ligações está habilitada, o que instrui o Vinyl a incluir as ligações para a Sessão/Usuário/Janela ao executar a subconsulta na Tabela Gerenciada. Se você quiser reportar todos os registros contidos na tabela, sem essa ligação, desmarque a opção Incluir Ligações.

  1. Navegue até App Workbench > Regras
  2. Localize a regra com uma tabela gerenciada e clique no ícone edição a lápis correspondente
  3. Na aba Tabelas, clique na região azul do nome da tabela
  4. Defina a opção Incluir vinculações de acordo com os resultados desejados

    includebindings.png

  5. Clique no botão Resultados para validar se os registros retornados estão conforme o esperado