BPM

Formulário ECM - Regras

893 views 04/06/2019 14/09/2020 marcelo-rafael 4

Através das regras de consistência é possível escrever validações mais específicas para formulários ECM e com isso, garantir que os dados informados por usuários estarão de acordo com os critérios da regra de negócio.

Criar uma nova regra

Após ter os campos do formulário, já criado, clique sobre o botão Regras de Consistência. Na tela que irá abrir, clique no botão Criar uma nova regra.

 

Quando

A primeira opção que será exibida ao clicar sobre o botão Criar uma nova regra, é a opção Quando. A opção Quando define o momento em que as regras deverão ser executadas e atualmente, existem 3 tempos:

  • Abrir o formulário
  • Enviar o formulário
  • A condição for verdadeira

Ao abrir o formulário

Para a opção Abrir o formulário, inicialmente é exibido dois campos: Ação e Campos aplicados. No campo ação, é possível escolher entre cinco ações: Habilitar, Desabilitar, Exibir, Esconder, Tornar obrigatório.

Habilitar: A ação habilitar irá habilitar um campo que está desabilitado quando o formulário for aberto.
Desabilitar: A ação desabilitar irá desabilitar um campo que está habilitado quando o formulário for aberto. É importante lembrar que desabilitar um campo não o torna oculto. Desabilitar um campo apenas o torna bloqueado para que não seja possível realizar edições.
Exibir: A ação exibir irá mostrar um campo que antes estava oculto quando o formulário for aberto.
Esconder: A ação esconder irá esconder um campo que antes estava sendo mostrado na tela, quando o formulário for aberto. Essa ação fará com que o campo fique indisponível para edição e visualização.
Tornar obrigatório: A ação tornar obrigatório irá alertar o usuário de que o campo não pode ser vazio.

O campo seguinte é o campo Campos aplicados. Nesse campo será informado a quais campos a ação (habilitar, desabilitar, exibir, esconder e tornar obrigatório) será aplicada. Mais de um campo pode ser informado.

O botão Adicionar ação, pode ser utilizado para criar mais uma ação, que poderão ser criadas de acordo com a necessidade.

Enviar o formulário

A opção Enviar o formulário, possui 4 campos: Validar, Ação Campos aplicados e Mensagem (apenas é exibido quando a ação consistir for selecionada). No campo ação, existe apenas a opção Consistir. No campo Campos aplicados, deverá ser informado os campos que ao serem alterados, farão com que a condição escrita no campo Validar seja executada. Exemplo: Caso o valor do campo Validar seja ${nome} == ‘123’ e o campo nome for informado no campo Campos aplicados, deve-se considerar a seguinte expressão: Quando enviar o formulário, validar se nome for igual a 123′ então executar a ação consistir campo nome.

A condição for verdadeira

A opção A condição for verdadeira, inicialmente possui 3 campos: Validar, Ação Consistir campos. O botão Adicionar ação, possibilita que mais de uma ação seja adicionada.

No campo Validar, deverá ser informada a condição que será executada quando A condição for verdadeira,.

No campo Ação, deverá ser selecionada a ação que será executada sobre o(s) campo(s) informado(s) em Campos aplicados. Nesta tela, o campo Ação possui 6 opções:

  • Habilitar: A ação habilitar irá habilitar um campo que está desabilitado sempre que a condição informada no campo Validar, for verdadeira.
  • Desabilitar: A ação desabilitar irá desabilitar um campo que está habilitado sempre que a condição informada no campo Validar, for verdadeira. É importante lembrar que desabilitar um campo não o torna oculto. Desabilitar um campo apenas o torna bloqueado para que não seja possível realizar edições.
  • Exibir: A ação exibir irá mostrar um campo que antes estava oculto, sempre quando a condição informada no campo Validar, for verdadeira.
  • Esconder: A ação esconder irá esconder um campo que antes estava sendo mostrado na tela, sempre que a condição informada no campo Validar, for vedadeira. Essa ação fará com que o campo fique indisponível para edição e visualização.
  • Tornar obrigatório: A ação tornar obrigatório irá alertar o usuário de que o campo não pode estar vazio, sempre que a condição informada no campo Validar, for verdadeira.
  • Consistir: Um campo Mensagem será exibido ao selecionar essa opção. Sempre que a condição informada no campo Validar for verdadeira, o campo ficará como inválido e a mensagem definida no campo mensagem será mostrada para o usuário.

Condições (Sintaxe)

As condições deverão sempre ser informadas no campo Validar e deverão ser escritas utilizando a sintaxe da linguagem Java Script.

Operadores de comparação

Operador Descrição Exemplos que retornam verdadeiro
Igual (==) Retorna verdadeiro caso os operandos sejam iguais. ${nome} == ‘Marcelo’
${nome} == ‘Ana’
‘Marcelo’ == ${nome}
Diferente de (!=) Retorna verdadeiro caso os operandos sejam diferentes ${nome} != ”
${nome} != ‘Ana’
‘Marcelo’ != ${nome}
Estritamente igual (===) Retorna verdadeiro caso os operandos possuam o mesmo valor e o mesmo tipo (Inteiro, Texto, Data, etc) ${nome} === ${sobrenome}
${nome} === ${nome_mae}
${nome} === ${nome_pai}
Estritamente diferente (!==) Retorna verdadeiro caso os operandos possuam diferentes valores e/ou tipos diferentes. ${nome} !== 123
${nome} !== ${data_nascimento}
Maior que (>) Retorna verdadeiro caso o operando da esquerda seja maior que ao da direita. ${idade} > 17
${idade} > ‘0’
Maior que ou igual (>=) Retorna verdadeiro caso o operando da esquerda seja maior ou igual ao da direita. ${idade} >= 18
${idade} >= 1
Menor que (<) Retorna verdadeiro caso o operando da esquerda seja menor ao da direita. 17 < ${idade}
${total_dependentes} < 3
Menor que ou igual (<=) Retorna verdadeiro caso o operando da esquerda seja menor ou igual ao da direita.  ${idade} <= 18
2 <= ${total_dependentes}

Operadores lógico

Operador Descrição Exemplos
E lógico (&&) (E lógico) – Utilizado para adicionar uma nova expressão em uma condição, a qual deverá ser verdadeira para que a expressão completa seja verdadeira. A leitura ficaria da seguinte forma: Se idade for maior que 17 anos e (&&) idade for menor que 60 anos, então é verdadeiro. Para a condição mecionada, as duas expressões precisam ser verdadeiras para que a condição seja verdadeira: a idade precisa ser maior que 17 anos e menor que 60. ${idade} >= 17 && ${idade} < 60
OU lógico (||) (Ou lógico) – Utilizado para adicionar uma nova expressão em uma condição mas que não precisa necessariamente ser verdadeira para que a condição toda seja verdadeira. A leitura ficaria da seguinte formar: Se o nome for Ana ou (||) o nome for Maria, então é verdadeiro. Para essa condição, as duas expressões são independentes: Se o nome for Ana, a condição será verdadeira. Se o nome for Maria, a condição será verdadeira também. ${nome} == ‘Ana’ || ${nome} == ‘Maria’
Não lógico (!) (Negação lógica) transforma uma expressão verdadeira em falsa; se não, caso a expressão seja falsa, a transforma em verdadeira. A leitura ficaria da seguinte forma: Se idade não (!) for maior que 17 anos, então é verdadeiro. !(${idade} > 17)

Comparando campos do tipo texto

Inicialmente trataremos dois campos: nome e sobrenome. Para verificar se ambos os campos foram informados pelo usuário, precisaremos escrever uma condição que verifique se ambos são diferentes de vazio. Para isso, utilizaremos o operador !.

!${nome} || !${sobrenome}

A expressão acima está negando o nome e sobrenome. Ou seja, consiste toda vez que o nome e sobrenome não existirem.

A leitura da regra acima, fica da seguinte maneira: Quando enviar o formulário, validar se nome não existir ou se sobrenome não existir, então executa a ação de consistir os campos nome sobrenome exibindo a mensagem Obrigatório.

Também podemos comparar campos do tipo texto com outros campos do tipo texto e com textos estáticos. Usando os campos acima, poderíamos fazer a seguinte comparação:

${nome} == 'Facebook' || ${sobrenome} == ${nome}

A leitura da regra acima seria da seguinte maneira: Quando enviar o formulário, validar se nome for igual a Facebook ou se sobrenome for igual ao nome, então executa a ação.

Comparando números

A forma para comparar números é semelhante ao que foi apresentado na comparação de textos. Para números, podemos utilizar os operadores > (maior que), >= (maior que ou igual a), < (menor que), <= (menor que ou igual a).

Considere os campos: idade e idade_conjuge.

${idade} < 18 || ${idade_conjuge} < 18

A condição acima, iria fazer a consistência caso as idades informadas, fossem menor que 18. Podemos escrever as mesmas expressões, da seguinte forma:

${idade} <= 17 || ${idade_conjuge} <= 17

Comparando datas

A comparação de datas ocorre de uma maneira diferente, todos os campos de data de um formulário ecm são automaticamente convertidos para um valor inteiro. Dessa forma, para compararmos dois campos de data, utilizaremos os mesmos exemplos de condições utilizadas para números inteiros. Portanto:

Considere os campos: data_nascimento, data_falecimento

${data_falecimento} >= ${data_nascimento}

A condição acima diz que irá realizar a consistência, caso a data de falecimento seja maior que a data de nascimento.

Para compararmos uma data estática, devemos converter uma data para inteiro. Na linguagem Java Script, nós podemos ter acesso a data atual através do objeto new Date(). Para convertermos essa data para inteiro, devemos chamar um método desse objeto, chamado getTime(). Considere o seguinte exemplo:

${data_nascimento} > new Date().getTime()

A expressão acima irá realizar a consistência caso a data de nascimento seja maior que a data de hoje.

Caso haja a necessidade de comparar com uma data específica, podemos passar os parâmetros para o objeto Date, seguindo a ordem: ano, mês, dia, hora, minuto, segundos. Considere a seguinte expressão:

${data_nascimento} > new Date(2009, 11, 31).getTime()

A expressão acima irá consistir caso a data de nascimento seja maior que 31/12/2019. Repare que como segundo parâmetro, o mês, foi passado o valor 11 em vez de 12. Isso acontece porque no javascript a contagem do mês começa  a partir de 0. Ou seja, 0 é janeiro e 11 é dezembro.

Avançado

O Java Script permite possui diversas funcionalidades nativas que podem auxiliar na hora de escrever expressões. Para mais informações, consulte os links abaixo:

Este artigo foi útil para você?