Como configurar as regras no formulário web
Pré-requisitos
- Acesso ao menu Cadastro > Formulário (FO005).
- Formulário web previamente cadastrado e modelado.
Apresentação
As regras são os mecanismos que fazem o formulário apresentar campos, escondê-los ou torná-los obrigatórios em diferentes situações.
Nas regras devem ser definidas as ações que devem ser executadas de acordo com informações preenchidas no formulário. As ações permitem comparar informações preenchidas, alterar as propriedades de campos, exibir uma mensagem na tela, executar outra regra e ainda executar um conjunto de dados para preencher variáveis do formulário com o resultado desta execução.
Devido às necessidades específicas de cada organização, cabe ao usuário definir e desenvolver suas fórmulas, adequando-as às suas necessidades. Dependendo da complexidade das regras necessárias, pode ser necessário a compreensão de conceitos de lógica de programação.
Conheça a divisão da área de trabalho do editor de fórmulas e saiba como configurar alguns tipos de regras nos formulários:
Área de trabalho do editor de fórmulas
O editor de fórmulas pode ser acessado por dois caminhos:
Regras gerais do formulário
1. Acesse o menu Cadastro > Formulário (FO005).
2. Selecione o formulário no qual deseja configurar as regras.
3. Clique na seta ao lado do botão e selecione Editor de formulário.
4. Na barra de ferramentas, clique na seta do campo Regras e selecione Carregar ou Salvar/Finalizar.
Regras relacionadas a um campo do formulário
1. Acesse o menu Cadastro > Formulário (FO005).
2. Selecione o formulário no qual deseja configurar as regras.
3. Clique na seta ao lado do botão e selecione Editor de formulário.
4. Na área de modelagem, selecione o campo desejado para exibir suas Propriedades.
5. Na seção Regras, do campo Propriedades, selecione para qual evento do formulário será configurada uma regra: Entrada, Saída, Alteração ou Clique.
Após acessar a área de trabalho do editor de fórmulas, a tela estará dividida da seguinte maneira:
A - Nesta área, é apresentada a barra de ferramentas do editor de fórmulas. Os botões apresentados podem variar, pois podem apresentar funções específicas do componente em que o editor de fórmulas foi acessado.
B - Nesta área, é apresentada a área de edição. As fórmulas ou funções podem ser digitadas ou selecionadas na barra de ferramentas.
C - Esta é a área de apresentação das fórmulas. Assim que uma função ou fórmula é informada na área de edição, a área de apresentação também é atualizada, entretanto, nesta área, as informações são exibidas com suas respectivas formatações.
Configurar regras
1. Acesse o menu Cadastro > Formulário (FO005).
2. Selecione o formulário no qual deseja configurar as regras.
3. Clique na seta ao lado do botão e selecione Editor de formulário.
4. Configure a regra desejada:
Regra para habilitar/desabilitar campos do formulário
Em um formulário é comum existir regras que desabilitam campos de acordo com alguma opção selecionada.
Um exemplo simples é um conjunto de Radio buttons para identificar o estado civil (Solteiro/Casado). Neste exemplo, ao selecionar a opção "Married" (casado) deve-se habilitar o campo "Spouse name" da área "Spouse" (cônjuge).
Para facilitar o entendimento da regra antes de configurá-la, uma boa prática é escrever a fórmula (regra) de uma forma simples e resumida:
- Quando o usuário clicar no campo "Married", deve-se habilitar o campo "Spouse name", da área "Spouse". Também deve-se remover qualquer marcação realizada nos demais Radio buttons da área "Marital Status".
O "quando", da descrição acima, é determinado pelo evento de clique no Radio button "Married". A ação de habilitar o campo "Spouse name" e de desmarcar os demais Radio buttons é determinada pela função "ACAO".
Clique sobre a função, na área de apresentação, e na tela de parâmetros, selecione todos os campos do formulário que serão alterados com o clique no Radio button "Married". Utilize as colunas da tela de parâmetros para habilitar o campo "Spouse name" e limpar os campos dos outros Radio buttons.
Veja mais detalhes na imagem a seguir:
Como utilizar variáveis
Variáveis são utilizadas para guardar valores em diversos lugares da fórmula. Um exemplo comum é buscar o valor de um campo e comparar diversas vezes na fórmula para habilitar/desabilitar campos de acordo com um valor.
Para criar uma variável, basta escrever uma letra ou palavra seguida do caractere = (igual) e o valor da variável. O valor pode ser um número (resultado de um cálculo), um texto (neste caso, entre aspas simples) ou um valor de um campo do formulário.
Como utilizar condições (SE/SENAO) para habilitar campos de acordo com valor de outro campo
Condições servem para os casos em que se deseja verificar um valor de um campo, e dependendo do valor, habilitar alguns campos ou desabilitar/esconder outros.
Para habilitar/desabilitar campos, deve-se sempre usar a função ACAO. A imagem a seguir mostra um exemplo que busca o valor de um campo e o armazena em uma variável para utilizar nas condições:
A - Busca o valor do campo e armazena na variável v (valor).
B - Se o valor de v for igual a 'John', ou seja, se o nome do emissor for igual a 'John', será aplicada a ação de habilitar o campo 'starttime'.
C - Se o valor de v for igual a 'Anne', ou seja, se o nome do emissor for igual a 'Anne', será aplicada a ação de tornar obrigatório o preenchimento do campo 'starttime'.
Para cada comando SE/SENAO, é necessário o comando FIM. A função ACAO está atribuída a uma variável x, pois na construção das fórmulas, é necessário que a função possua uma variável que retorne o valor aplicado dentro da função; neste caso, que retorne a ação aplicada nos campos.
Pode-se também fazer RETORNO ACAO(...). A função VALORCAMPO utiliza 2 parâmetros: identificador da entidade e identificador do atributo da entidade. Para facilitar, ao abrir a tela de configuração do parâmetro, o sistema já preenche com a entidade do formulário corrente.
Como buscar valor selecionado na lista (combobox/zoom)
Buscar um valor na lista (combobox/zoom) é semelhante a buscar um valor em outro campo (input, etc.). Basta utilizar a função VALORLISTA no lugar de VALORCAMPO.
A função VALORLISTA permite buscar o valor selecionado que não é mostrado na tela.
Veja um exemplo na imagem a seguir:
A função VALORLISTA possui 3 parâmetros: identificador da entidade, identificador do relacionamento (mesmo utilizado nas propriedades do combobox/zoom no formulário) e identificador do atributo.
Ao abrir a tela de configuração dos parâmetros da função, o sistema preenche automaticamente a entidade de origem do formulário corrente. Basta selecionar o relacionamento e o atributo que se deseja buscar.
Como preencher valor no campo via fórmula
Para preencher o valor em um campo via fórmula, deve-se usar a mesma função que habilita/desabilita campos. O último parâmetro pode informar uma variável que contém o valor a ser preenchido.
A imagem a seguir mostra um exemplo:
Como realizar cálculos com valores preenchidos no formulário
Para realizar cálculos, deve-se utilizar as funções de Matemática: Soma, Multiplicação etc.
Veja mais detalhes nas imagens a seguir:
A - Operações de soma.
B - Operações de multiplicação.
C - Operações de subtração e divisão.
D - Em casos de divisão de número decimal, deve-se multiplicar o valor decimal por 1 e então fazer a divisão.
As funções SOMA e MULTIPLICACAO possuem parâmetros, que são os valores da operação, separados por ponto-e-vírgula (;).
Em casos da divisão de número decimal, deve-se multiplicar o valor por 1 antes de realizar a divisão, pois o sistema precisa converter o separador ("," ou ".") das casas decimais para um formato único.
Toda informação de um campo campo incluída na regras através da função VALORCAMPO retorna para a regra como texto. É necessário transformar o dado para número, para que os cálculos sejam executados corretamente. Para isso, utiliza-se a função de multiplicação por 1.
Como preencher valor no campo com resultado do cálculo
Para preencher o valor no campo com o resultado do cálculo, basta realizar o cálculo e utilizar a função ACAO para definir o valor no campo.
A imagem a seguir mostra um exemplo que multiplica dois campos e preenche o valor com o resultado no campo total:
Como preencher valor no campo com nome do usuário logado
Para preencher o valor no campo com o nome do usuário logado, será utilizada a função ACAO. O nome do usuário logado pode ser obtido através da função USUARIOLOGADO.
Veja mais detalhes na imagem a seguir:
Como preencher valor no campo com iniciador do processo
Para preencher o valor no campo com o iniciador do processo, será utilizada a função ACAO. O nome do iniciador do processo pode ser obtido através da função INICIADOR.
Veja mais detalhes na imagem a seguir:
Esta função somente pode ser testada através da execução de um processo no SoftExpert Workflow.
Como habilitar campos do formulário de acordo com atividade do processo
Para habilitar campos conforme a atividade, deve-se primeiramente buscar o Identificador ou Nome da atividade para utilizar nas condições. Para isso, utiliza-se a função ATIVIDADE, que busca a atividade corrente na qual o formulário é visualizado.
Após isso, deve-se criar as condições (SE/SENAO) e utilizar a função ACAO para habilitar/desabilitar campos.
A imagem a seguir mostra um exemplo:
Como utilizar a matrícula do usuário para que o sistema busque o nome, idade etc.
Este exemplo é utilizado nos casos em que o usuário digita a matrícula ou código e o sistema busca, nas demais entidades (tabelas), o nome, idade, estado civil etc.
Para realizar essa tarefa, execute o seguinte procedimento:
- No evento de saída do campo de matrícula, criar uma fórmula.
- Na fórmula, primeiro deve-se buscar o valor do campo matrícula (usrregistry) e armazenar em uma variável (usr_registry). Utiliza-se a função VALORCAMPO.
- Criar um filtro (filter) com o valor da matrícula na entidade que possui os dados de nome, idade etc. (entidade 'E002 - Employee'). Utiliza-se a função FILTROTABELA.
- Buscar o nome e idade na entidade (E002 - Employee) utilizando o filtro criado acima e armazenar em variáveis ('var_nm' e 'var_age'). Utiliza-se a função VALORCAMPOFILTRO.
- Preencher o nome e idade nos campos do formulário utilizando a função ACAO.
Observe a aplicação do passo a passo na imagem:
A - Busca a matrícula (usrregistry) preenchida pelo usuário no formulário.
B - Cria um filtro na entidade 'E002 - EMPLOYEE' pelo atributo 'registryid'.
C - Busca o nome e a idade na entidade 'E002' utilizando o filtro.
D - Preenche os campos Nome e Idade no formulário com o valor das variáveis.
Como calcular total de coluna da grid
Não é necessário que a coluna seja mostrada na grid, pois se considera uma coluna da tabela.
Para calcular o valor da coluna total, deve-se utilizar a função TOTALGRID. Nessa função, informa-se o relacionamento, a tabela da grid (mesmos dados informados nas propriedades da grid), o campo que se deseja calcular e a operação (Soma, Média, Máximo, Mínimo, Contador). Após calcular, pode-se preencher o resultado em um campo do formulário via função ACAO.
A - Calcula o total da coluna (TOTALVL) da grid.
B - Preenche um campo decimal com o resultado.
Como desabilitar todos os campos do FieldSet
Para aplicar ações em todos os itens posicionados num FieldSet, pode-se utilizar a função ACAOGRUPO. É necessário informar o Identificador do FieldSet e as ações a serem realizadas.
Esta opção é utilizada em casos que se deseja esconder ou desabilitar várias seções do formulário. Para aplicar em mais de um FieldSet, basta repetir a linha alterando o Identificador para cada FieldSet.
Como esconder/exibir um título ou imagem
Para esconder ou exibir campos do tipo Título ou Imagem, deve-se utilizar a função ACAOITEMGRAFICO. Essa função é semelhante à ACAOGRUPO.
É necessário informar o Identificador do item de Título ou item de Imagem e as ações a serem realizadas.
Como preencher valor no título
Para preencher valor no título, utiliza-se a função ACAOITEMGRAFICO. É necessário informar a variável com o valor a ser preenchido somente no último parâmetro.
A imagem a seguir mostra um exemplo:
Exemplo de calcular a idade a partir da data de nascimento
Para calcular a idade, é necessário utilizar algumas funções do botão de data na barra de ferramentas.
A imagem a seguir mostra um exemplo:
A - Busca a data de nascimento preenchida no formulário.
B - Busca a data de hoje através da função HOJE().
C - Separa as datas em ano, mês e dia.
D - Calcula a idade através da subtração do ano atual pelo ano de nascimento.
E - Verifica se o usuário já fez aniversário no ano atual. Caso não tenha feito, diminui a idade em um ano.
F - Preenche o valor do campo idade com a idade calculada.
Cálculo com campo Hora
É possível calcular a quantidade de horas entre dois campos do tipo Hora.
Na imagem a seguir, é mostrado um exemplo entre um campo Hora e a hora atual:
Como utilizar as funções ACAO, ACAOGRUPO e ACAOITEMGRAFICO na mesma fórmula
É possível utilizar as funções ACAO, ACAOGRUPO e ACAOITEMGRAFICO combinadas. Existem casos em que se deseja manter somente um item habilitado num FieldSet e os demais desabilitados.
Para atender a esse caso, pode-se desabilitar todos os itens do FieldSet com a função ACAOGRUPO e, em seguida, habilitar o campo desejado com a função ACAO. A sequência das ações é respeitada.
A imagem a seguir mostra um exemplo:
A - Desabilita todos os itens dentro do FieldSet.
B - Habilita somente o campo Total.
Não é permitido salvar fórmulas contendo qualquer uma das funções obsoletas EXECUTESQL, ABRIRZOOMSQL e UPDATEGRIDZOOMSQL, seja na criação ou edição da fórmula.
Exemplo prático
Um exemplo de regra pode ser a verificação do valor de um campo e a realização de ações sobre outros campos. As ações são: habilitar, desabilitar, marcar como requerido, não requerido, exibir, ocultar, limpar, carregar e aplicar valor em um campo.
No exemplo utilizado, foram incluídos campos para a aprovação da solicitação de viagem. Utilizando as regras, é possível desabilitar o Checkbox “No” quando o Checkbox “Yes” for marcado e vice-versa.
Conclusão
É possível criar uma infinidade de fórmulas para manipular os campos do formulário conforme a necessidade. Confira o Editor de fórmula para mais detalhes sobre a construção de fórmulas.