
O Genexus dá conta da questão da integridade no relacionamento entre as tabelas, mas e quanto ao conteúdo dos campos, será que devemos fazer algo a respeito? A resposta é sim, a menos que você permita que em seu sistema o usuário crie nomes do tipo @#!$Joao*&SdeOliveira#$%S1lv@.
Com certeza o mecanismo mais simples para detectar coisas estranhas em textos são as expressões regulares, tal como caracteres especiais onde não deveriam ser permitidos, e apesar da dificuldade de entendê-las, algumas mais simples podem ser muito úteis.
Impedindo Caracteres Estranhos
Por exemplo, para que o usuário não digite caracteres especiais em um determinado atributo, em uma transação, teríamos uma regra Error com a seguinte expressão.
Error('Caracteres inválidos no Usuario') if UsuarioNome.IsMatch("[,.@!#$ +=]");
Essa pequena expressão devolveria erro em caso do usuário utilizar algum dos caracteres listados entre [ ... ]
Aceitando Somente Letras e Números
A expressão a seguir somente permite a entrada de números e letras de A a Z.
Error('Caracteres inválidos) if not UsuarioNome.IsMatch("[0-9a-zA-Z]");
Para expressões como as apresentadas acima, é possível substituir a regra Error, pela propriedade Validation presente nos Atributos ou mesmo do próprio Domínios, o resto o Genexus faz.
Portanto, é muito recomendado gastar um tempinho ajustando os valores a serem aceitos, para não se ter surpresas no final, principalmente as desagradáveis.
Um comentário:
Gostei da dica, estava procurando isso no Help.
Parabéns.
Abs,
GX Developer
Postar um comentário