Dicas de Validação
Regras de validação em App Builder são uma maneira de proteger seus dados de manipulação de dados indesejada ou imprópria. As Regras de Validação são configuradas na área Business SQL da Camada de Lógica de Negócios e, uma vez configuradas, podem ser usadas no aplicativo 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 em App Builder. As validações são usadas para proteger a integridade dos dados. Elas podem ser executadas em dados inseridos manualmente e evitar 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
-
99% do tempo você deve usar a vinculação implícita. A vinculação explícita é usada para validações XP (como para uma API REST). A vinculação explícita pode não quebrar sua validação.
-
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, então você deve ter como alvo a tabela e registrar no nível da tabela. Se você quiser registrar no objeto de dados, então tenha como alvo o objeto de dados.
-
O verdadeiro truque é saber como o registro Temporário/Novo ("Na Memória") é referenciado na regra de Validação para verificar as linhas existentes. {{nm.ab}} substituirá qualquer objeto de negócios pelo novo registro nos seguintes cenários:
- Substitui a primeira tabela de destino adicionada à regra de validação. A segunda não é tocada. Na verdade, está na ordem em que foram adicionadas.
- Substitui todos os objetos de dados que têm como alvo a mesma tabela de destino que o painel/evento tem como alvo.
- Veja a seção Cenários de substituição abaixo.
Importante
Isso se torna muito importante quando você quer validar um registro em relação a registros existentes. Se você quiser fazer isso, precisará adicionar a tabela de destino duas vezes ou considerar adicionar um objeto de negócios que não tenha como alvo a mesma tabela visada pelo evento.
-
Ao criar uma regra de validação que use a abordagem "Na memória", o objeto comercial do qual a regra de validação é registrada deve conter todas as colunas referenciadas na regra de validação para "substituir" com sucesso todos os valores das colunas.
- Veja o exemplo Email duplicado "na memória" abaixo para ver uma configuração de exemplo.
-
Validações acionadas em regras de negócios executadas em ações não conseguem executar confirmações. Elas serão arredondadas para erros. Não há uma maneira de executar metade do seu evento de nível superior, confirmar algo e continuar executando.
-
{{nm.ab}} 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 dispara e, em seguida, {{Value}} no campo de mensagem da Validação.
Cenários de substituição:
- Cliente, Cliente (Fonte A), Cliente (Fonte B): tudo é substituído
- Cliente, Cliente: A primeira tabela de clientes é substituída
- Cliente (Fonte A), Cliente (Fonte B): Todos são substituídos
- Cliente, Cliente (Fonte A), Cliente (não estou direcionando o Cliente): Cliente e Cliente (Fonte A) são substituídos
Exemplo de regra de validação Email duplicado "na memória":
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 salvos atualmente nas linhas da tabela. Todas as colunas na regra Validation devem existir no Business Object para que App Builder para colocar com sucesso os valores "Na Memória" nas colunas da regra para que a lógica funcione.
-
Exemplo de registro de validação para uma regra de validação Email duplicado:
-
Exemplo de configuração de regra de validação:
-
Cláusula Where para configuração de regra de validação:
-
Junte a lógica para configuração da regra de validação: