Ir para o conteúdo

Dicas de Validação

Regras de validação no Vinyl são uma forma de proteger seus dados contra manipulação de dados indesejada ou inadequada. As Regras de Validação são configuradas na área Business SQL da Camada Lógica de Negócios e, uma vez configuradas, podem ser utilizadas na aplicação adicionando-as como Controles aos Painéis nas Páginas.

Este artigo fornece algumas práticas recomendadas e recomendações ao trabalhar com validações no Vinyl. Validações são usadas para proteger a integridade dos dados. Eles podem ser executados em dados inseridos manualmente e impedir que um usuário adicione registros que violem a lógica de negócios (por exemplo, registros duplicados). As regras de validação também podem ser usadas na camada de lógica de negócios. Se uma regra CRUD for definida como camada de negócios, as validações também serão executadas quando essa regra CRUD for executada.

As mensagens de validação apresentadas aos usuários finais são configuráveis e podem aproveitar a substituição dinâmica para melhorar a experiência do usuário.

Tutorial de Regras de Validação

Melhores Práticas e Recomendações

  1. 99% das vezes você deve usar vinculação implícita. A ligação explícita é usada para validações XP (como para uma API REST). A ligação explícita não pode quebrar sua validação.

  2. Sua validação deve ter como alvo a tabela ou o objeto de dados do painel. Se você quiser registrar no nível da tabela para que ele seja executado sempre que um registro for salvo por meio de qualquer objeto de dados, você deverá direcionar a tabela e registrar-se no nível da tabela. Se você deseja registrar-se no objeto de dados, direcione o objeto de dados.

  3. O verdadeiro truque é saber como o registro Temporário/Novo ("In-Memory") é referenciado na regra de validação para verificar as linhas existentes. O Vinyl substituirá qualquer objeto de negócio pelo novo disco nos seguintes cenários:

    1. Substitui a primeira tabela de destino adicionada à regra de validação. O segundo está intocado. Na verdade, isso está na ordem em que foram adicionados.
    2. Substitui todos os objetos de dados que têm como alvo a mesma tabela de destino que o painel/evento tem como destino.
      • Consulte a seção Cenários de Substituição abaixo.

    Importante

    Isso se torna muito importante quando você deseja validar um registro em relação a registros existentes. Se quiser fazer isso, será necessário incluir a tabela de destino duas vezes ou considerar adicionar um objeto de negócios que não tenha como destino a mesma tabela de destino do evento.

  4. Se estiver construindo uma regra de validação que use a abordagem "In-Memory", o objeto de negócios a partir do qual a regra de validação é registrada deverá conter todas as colunas referenciadas na regra de validação para "substituir" com êxito todos os valores de coluna.

    • Veja o exemplo Email duplicado "na memória" abaixo para obter um exemplo de configuração.
  5. Validações acionadas em regras de negócios executadas em ações não conseguem realizar confirmações. Eles serão arredondados para erros. Não há como executar seu evento de nível superior pela metade, confirmar algo e continuar realizando-o.

  6. O Vinyl suporta substituição dinâmica nas mensagens para Validações. Tudo o que você precisa fazer é fornecer o valor que deseja substituir no objeto de dados do painel em que a Validação é acionada e, em seguida, {{Value}} no campo de mensagem da Validação.

Cenários de substituição:

  • Cliente, Cliente (Fonte A), Cliente (Fonte B): todos são substituídos
  • Cliente, Cliente: A primeira tabela do cliente é substituída
  • Cliente (Fonte A), Cliente (Fonte B): Todos são substituídos
  • Cliente, Cliente (Fonte A), Cliente (não estou segmentando o Cliente): Cliente e Cliente (Fonte A) são substituídos

Exemplo de regra de validação "na memória" Email duplicado:

Este exemplo ilustra a abordagem de validação "In-Memory", onde o valor que o usuário está digitando é verificado em relação aos valores que estão atualmente salvos nas linhas da tabela. Todas as colunas na regra de validação devem existir no Business Object para que o Vinyl coloque com êxito os valores "In-Memory" nas colunas da regra para que a lógica funcione.

  • Exemplo de registro de validação para uma regra de validação Email duplicado:

    validaçãoregistration.png

  • Exemplo de configuração de regra de validação:

    businessrule.png

  • Cláusula Where para configuração da regra de validação:

    wherelogic.png

  • Lógica de junção para configuração da regra de validação:

    joinlogic.png