You are on page 1of 41

Fórmula Visual

0800 709 8100


totvs.com

Todos os direitos reservados. Planejamento e controle orçamentário 1


Sumário VISÃO GERAL DO CURSO 3
Introdução 3
Conceitos 3
O que é a Fórmula Visual RM 4
FAQ Fórmula Visual RM 4
CONFIGURAÇÃO DO AMBIENTE 7
Introdução e Requisitos Técnicos 7
Roteiro de Configuração 7
ATIVIDADES PRÁTICAS 12
Primeira Atividade 12
Segunda Atividade Prática 18
Aprimorando a Fórmula Visual da Segunda Atividade Prática 22
Terceira Atividade Prática 25
Quarta Atividade Prática 29
Quinta Atividade Prática 34
Sexta Atividade Prática 37
CONCLUSÃO 41
Posso 41
Não posso 41

2 Fórmula Visual Todos os direitos reservados.


VISÃO GERAL DO CURSO
Introdução
Através do tempo, a linha de produtos da RM tem buscado recursos tecnológicos para os mais diversos
fins. Recentemente, um desses recursos lançados chamou a atenção de diversos setores do mercado,
principalmente das empresas parceiras: a Fórmula Visual. Mas o que exatamente é a fórmula visual, e
como ela poderá contribuir ou agregar ao produto tanto para a TOTVS quanto para o cliente final?

Neste treinamento, os participantes poderão compreender melhor este recurso inovador. Serão também
capacitados a utilizar e criar diversas fórmulas visuais, em diferentes contextos.

Conceitos
O que é Workflow?
Logo quando lançada, a Fórmula Visual RM possuía o nome de Workflow RM. A origem do nome ocorreu
em função da fórmula visual se basear na tecnologia MS WWF (Microsoft Windows Workflow Foundation
3.5). Logo, percebe-se que existe um forte vínculo entre a Fórmula Visual e o conceito de Workflow. Mas
o que é Workflow?

“Workflow é a tecnologia que permite automatizar processos, racionalizando-os e potencializando-


os por meio de componentes implícitos: organização e tecnologia” [Duarte,1997]

“É a automação do processo de negócio, na sua totalidade ou em partes, onde documentos,


informações ou tarefas são passadas de um participante para o outro para execução de uma ação,
de acordo com um conjunto de regras de procedimentos. A automação do processo de negócio
identifica as várias atividades do processo, regras de procedimento e controle de dados associados
para gerenciar o Workflow durante a ativação do processo.”
Fonte: WFMC (Fórmula Visual Management Coalition)

De forma simplificada, um Workflow é um conjunto de processos, regras, papéis e rotas que definem um
processo de negócio. Em um sistema de Workflow, o usuário assume papéis os quais lhe são delegados e
que foram definidos dentro de processos de negócio.

Processos de negócio complexos envolvem vários papéis, e normalmente são assíncronos, ou seja: o fluxo
pode ficar interrompido eternamente caso um usuário não execute seu papel dentro do processo. As
atividades, regras e rotas se “encaixam” como peças de um quebra-cabeça, que pode ser redefinido de
acordo com a necessidade do negócio.

Exemplo de Workflow Simplificado que define a estratégia de um pedestre para atravessar uma rua na
faixa de pedestres:

Todos os direitos reservados. Fórmula Visual 3


Na ilustração acima, as regras são definidas pelos losangos (que representam uma estrutura de decisão),
associados às tarefas que os precedem. Existe apenas um papel que é o do pedestre e as rotas definem as
possíveis trajetórias que definem “destinos” para o processo.

O que é a Fórmula Visual RM


A fórmula Visual RM é um mecanismo amplo e com finalidade geral para o desenvolvimento visual de
regras de negócio com o objetivo de estender ou customizar a solução TOTVS RM. Utiliza como base
o Microsoft Framework .NET - Windows Workflow Foundation 3.5, que é um produto muito robusto e
poderoso desde sua concepção, utilizado pelos principais softwares da própria Microsoft.

As fórmulas visuais são montadas visualmente com o auxilio de um designer (editor visual de programas),
como uma sequencia de atividades.

Antes de prosseguirmos com o treinamento é muito importante entender exatamente o que é uma
fórmula visual, e como a mesma poderá ser útil dentro do contexto da linha de produtos RM.

FAQ Fórmula Visual RM


l A Fórmula Visual RM é uma ferramenta de BPM?
NÃO! É uma ferramenta que utiliza códigos e artefatos visuais para a elaboração de customizações,
que podem ser criadas até mesmo por usuários finais.
l Estou confuso... a Fórmula Visual RM é uma solução completa de Workflow?
É uma ferramenta de customização baseada no Microsoft Windows Workflow Foundation 3.0.
Portanto, é um Workflow, mas a sua finalidade atualmente está restrita a se criar customizações nos
módulos existentes da Linha RM. Portanto, seu propósito não é o de ser utilizado para orquestrar
processos visualmente, mas sim o de se estender as funcionalidades da linha RM através de uma
interface visual.
l Ainda não ficou claro qual a diferença entre a Fórmula Visual e uma ferramenta de Workflow... É possível
detalhar com exemplos práticos?
Veremos diversos exemplos práticos no decorrer do treinamento, mas é importante compreender
as seguintes premissas:
l A Fórmula Visual é um recurso criado para se customizar a linha de produtos RM, mas essa
customização não permite que as regras de negócio nativas do produto sejam burladas, mas
sim complementadas;
l Apesar de estar intimamente relacionada ao conceito de Workflow, a Fórmula Visual não

4 Fórmula Visual Todos os direitos reservados.


contempla todas as funcionalidades de uma ferramenta de Workflow.
l NÃO É POSSÍVEL ATRAVÉS DA FÓRMULA VISUAL:
l criar novas telas no produto;
l burlar as regras de negócio contidas nos módulos já existentes do produto (caso seja
possível, gentileza abrir atendimento pois é um bug!);
l redefinir os fluxos de informação já existentes nos módulos do produto;
l criar ou definir um modelo de negócio complexo que não seja sequencial. Também não
é possível criar modelos assíncronos (mas é possível criar algo bem próximo, só que mais
simples);
l Acesso direto ao banco de dados para se executar comandos SQL de INSERT, UPDATE e
DELETE;
l Exibir janelas com mensagens interativas que dependem de uma resposta condicional do
usuário final;
l É POSSÍVEL ATRAVÉS DA FÓRMULA VISUAL:
l Encadear processos;
l Criar validações;
l Consumir WebServices que irão complementar a regra de negócio do produto;
l Alterar, Inserir e Excluir registros no produto através de atividades específicas para esse
objetivo que respeitam as regras de negócio nativas do produto;
l Executar consultas SQL no banco e até mesmo em outros bancos de dados, reutilizando as
consultas já existentes no módulo apropriado do produto;
l Todas as ações acima e muito mais, associadas a eventos ou gatilhos (será explicado
posteriormente) pré-definidos do sistema;
l Envio de SMS, Mashups, integração com o TBC...
l Utilizar a fórmula visual em telas migradas (Delphi NÃO);

Modelo de funcionamento tradicional da linha RM

Modelo de funcionamento com a Fórmula Visual

Observação:

Todos os direitos reservados. Fórmula Visual 5


A Fórmula Visual RM possui um princípio reativo individual. Isso quer dizer que a sua execução está
vinculada ao contexto do usuário que disparou a atividade inicial. A Fórmula Visual depende da iteração
do usuário para ser executada. Portanto deve-se entender que a princípio, uma única Fórmula Visual
RM não poderá ser utilizada para se criar Workflows de aprovação de requisições e qualquer outro de
natureza assíncrona, onde a iteração de vários usuários seja necessária para a conclusão do processo
de negócio. Uma Fórmula Visual “enxergará” apenas o usuário corrente, e sua execução não aguarda a
iteração de demais usuários.

l Em que momento minhas Fórmulas Visuais são disparadas?


Após construída, a Fórmula Visual poderá ser disparada através de gatilhos (também conhecidos
como “eventos”) disponíveis nas telas de cadastros e processos, conforme ilustração. Essa associação
pode ser feita nos processos e cadastros do produto, assim como também nos cadastros do portal
RM. Observe a variedade de gatilhos para processos e cadastros.

Observação:
Gatilhos disponíveis apenas em módulos migrados!

Conclusão
Em teoria, a Fórmula Visual será uma ferramenta que facilitará a customização de toda a linha de produtos
RM, ampliando ainda mais a sua utilização e adequando as funcionalidades já existentes a cenários que
necessitam de regras adicionais para complementar o processo de negócio.

Anotações

6 Fórmula Visual Todos os direitos reservados.


CONFIGURAÇÃO DO AMBIENTE
Introdução e Requisitos Técnicos
A Fórmula Visual está disponível desde a versão 11.00 da biblioteca RM. A partir dessa versão, é possível
utilizar esse recurso em toda a linha de produtos. Para sua utilização, é mandatório que o .Net Framework
3.5 esteja instalado nas máquinas onde o serviço de host estiver em execução. Este é um requisito técnico
adicional para a Fórmula Visual.

Roteiro de Configuração
Ambiente 2 ou 3 Camadas
Para habilitar o recurso de fórmula visual em ambiente de 2 ou 3 camadas, é necessário executar as
seguintes tarefas:
l Editar o arquivo RM.Host.Service.exe.config e/ou editar o arquivo RM.Host.exe.config
l Nesse arquivo, será necessário incluir um novo nó “add”, filho de appSettings com atributo key =
“WorkflowEnabled”, e atributo value = “true”. Lembre-se que arquivos XML são case-sensitive. (vide
ilustração):

l Já que utilizaremos a nova MDI no decorrer do treinamento, é necessário que você também realize
essa alteração no arquivo RM.exe.config. NÃO SE ESQUEÇA!
l Criar ou editar o XML de configuração do produto no qual se deseja utilizar a Fórmula Visual,
acrescentando configuração. Exemplo: RM Labore:

l A entrada a ser acrescentada nesse arquivo é idêntica à entrada acrescentada no arquivo anterior;

Todos os direitos reservados. Fórmula Visual 7


l Após efetuar os passos anteriores, será necessário reiniciar o serviço do host. NÃO É NECESSÁRIO APAGAR
O ARQUIVO _BROKER.DAT.

Testando a configuração
Execute o programa RM.exe (executável da nova MDI, linha RM). Após efetuar o login com sucesso, clique
na aba “Gestão”. Dentro da categoria “Ferramentas de Análise”, clique em “Fórmula Visual”, selecionando em
seguida a opção “Categorias”:

É necessário cadastrar ao menos uma categoria para ser associada a uma nova fórmula visual. Ela define
para quais usuários a F.V. estará associada para fórmulas de processo (esse tema será abordado mais
detalhadamente no decorrer do treinamento). Cadastre a categoria, conforme as ilustrações abaixo:

Observe que devemos associar um ou mais perfis de usuário à categoria. Assim será definida a relação
entre uma fórmula visual, sua categoria, e quais perfis de usuário serão afetados pela F.V.

8 Fórmula Visual Todos os direitos reservados.


Após concluir com sucesso o cadastro de categoria, vamos criar a nossa primeira F.V., clicando agora no
menu Fórmula Visual (ou Workflow, para versões 11.00, vide ilustração):

Vamos criar uma fórmula visual muito simples, que exibirá uma mensagem de erro quando o usuário
tentar salvar um registro do cadastro de seções do RM Labore. Para isso, clique no botão para adicionar
uma nova F.V, preenchendo seus dados conforme ilustração:

Na aba “Gatilhos”, vamos definir em qual/quais eventos e em qual/quais cadastros essa F.V. será executada.
Para esse teste, selecione o gatilho “Antes de Salvar o registro”,clicando em seguida no botão para adicionar
o DataServer associado:

Na tela seguinte, digite a palavra “Seções”, clicando em seguida sobre a palavra “Seções”:

Todos os direitos reservados. Fórmula Visual 9


Detalhe da tela após a conclusão da operação:

Clique então no botão “OK”, fechando a janela. A fórmula visual já está cadastrada, mas ainda não definimos
o que ela fará. Dê um duplo clique sobre a mesma para podermos editá-la. No canto superior esquerdo da
tela, clique na aba “Atividades”. Em seguida, arraste e solte a atividade “Gerar exceção” sobre o painel da
direita, ficando conforme a ilustração:

Voltando ao canto superior esquerdo, clique na aba “Propriedades”. Em seguida, preencha a propriedade
“Mensagem/Message” com o texto “Erro Fórmula Visual”, conforme a ilustração abaixo:

Agora, clique no Globo da TOTVS no campo superior esquerdo na janela principal, selecionando a opção
RH/Folha de Pagamento.

10 Fórmula Visual Todos os direitos reservados.


Na primeira aba (Cadastros), clique com o mouse no botão “Seções”.

Tente alterar e salvar os dados de uma seção qualquer. Se você tiver efetuado as configurações
corretamente, o sistema exibirá uma janela semelhante à ilustração abaixo:

Anotações

Todos os direitos reservados. Fórmula Visual 11


ATIVIDADES PRÁTICAS
Introdução
Talvez a melhor forma de se aprender a utilizar um recurso seja com a prática, desde que devidamente
acompanhada de embasamento técnico apropriado. Essa é a abordagem que será utilizada no decorrer do
treinamento. Se houver dúvidas, não deixe para depois: interrompa o instrutor com seus questionamentos
imediatamente. É muito importante que não haja dúvidas acumuladas entre as práticas realizadas por
você.

Primeira Atividade
Como primeira atividade, vamos criar uma Fórmula Visual no RM Labore que impeça o usuário de cadastrar
ou alterar o nome de uma seção incluindo o texto “RM SISTEMAS” em seu nome.

Quando se deseja criar uma fórmula visual que deverá validar um ou N campos, a primeira tarefa é
identificar quais são esses campos. A atividade proposta deverá bloquear qualquer alteração ou inclusão
no cadastro de seções quando o usuário digitar o nome “RM SISTEMAS” como parte do nome de uma
seção. Então, vamos acessar o cadastro de seções do RM Labore e identificar esse campo, seguindo o
primeiro passo.

1. Primeiro Passo: Identificar Tabela e Campo


Identificar o nome da tabela e coluna a ser tratada. Para tal, basta acessar o cadastro de seções, editando
uma seção já existente e em seguida, clicando com o botão direito do mouse na barra de ferramentas
superior, selecionando a opção “Visualizar nome dos campos”.

12 Fórmula Visual Todos os direitos reservados.


2. Segundo Passo: Criar a F.V.
Após descobrir qual o campo correto, vamos então criar uma nova F.V. Caso você tenha se esquecido
de como chegar lá, clique na aba “Gestão” e observe as opções da categoria “Ferramentas de Análise”.
Achou?

Então, mãos a obra! Crie então a nova F.V., preenchendo seu cadastro conforme a ilustração abaixo:

Importante:
Lembre-se de desativar a F.V. criada anteriormente, pois ela será executada, atrapalhando a validação da
atividade atual!

Observe que propriedade “Fórmula Visual Pai” serve apenas para se organizar o cadastro de forma
hierárquica. Não tem qualquer efeito sobre a execução. Já a propriedade “Ativo” habilita ou não a execução
da fórmula visual selecionada.

Antes de clicar no botão OK e confirmar o cadastro da Fórmula Visual, associe a execução da mesma a um
gatilho apropriado. Nesse caso, o gatilho é o “Antes de Salvar o Registro”:

Mesmo que você já tenha clicado no botão “salvar” ou “ok” basta, a qualquer momento, clicar no botão de
edição da visão principal do cadastro de F.V para efetuar essa operação.

Anotações

Todos os direitos reservados. Fórmula Visual 13


3. Entendendo a Interface de cadastro de Fórmulas Visuais:
A janela de edição das fórmulas visuais é composta por duas seções: a janela de edição, e o container de
Atividades e Propriedades.

A aba de propriedades permite ao usuário definir as propriedades de


cada elemento disponível na janela de diagrama da Fórmula Visual. A
medida em que o usuário seleciona um item diferente, suas propriedades
são exibidas na aba.

A aba de atividades contém todas as atividades disponíveis que podem


ser incluídas na janela de edição de diagramas, definindo o processo de
negócio. As principais categorias são duas, contendo algumas atividades
genéricas que não são específicas de um produto da linha RM;

Com a evolução do recurso, existirão ainda mais categorias e atividades


específicas por produto, aumentando ainda mais o poder do recurso e a
sua facilidade de utilização;

Por fim, temos também a janela de edição. É nela que iremos editar e definir a sequência de encadeamento
entre as atividades necessários para a modelagem do processo de negócio.

14 Fórmula Visual Todos os direitos reservados.


4. Criando a Fórmula Visual
A fórmula da atividade propõe que um teste condicional seja efetuado: testar e o campo NOME da tabela
PSECAO contém a substring “RM SISTEMAS”. Para tal, necessitamos fazer uso de uma atividade apropriada
para essa operação, que é a atividade “Se/Senão”:

Arraste e solte essa atividade sobre a janela de edição. Ao adicioná-la, observe que a mesma possui duas
atividades alinhadas por padrão. Cada uma dessas atividades pode ser utilizada para se avaliar diferentes
condições que seguirão fluxos diferentes em uma mesma etapa. N atividades do tipo ifElseBranchActivity
podem ser adicionadas (Copiar / Colar).

Faz sentido utilizar mais de uma ifElseBranchActivity quando houver mais de uma condição a ser avaliada,
sendo que cada uma dessas condições pode direcionar o fluxo para sentidos diferentes. Caso contrário,
podemos utilizar apenas uma (que na verdade é o nosso caso). Então, selecione com o mouse a segunda
atividade e exclua a mesma.

Como já era de se esperar, essa atividade exige que seja preenchida uma cláusula condicional determinando
o quê será avaliado. Preencha corretamente a propriedade “Condition” ou “Condição” da récem incluida
atividade com o auxílio das ilustrações abaixo:

Todos os direitos reservados. Fórmula Visual 15


A condição utilizada deve ser uma condição de Regra Declarativa. A linguagem de programação utilizada
pelo engine da F.V. é o C#. Na propriedade “Expressão”, clique no botão “...” e preencha o seguinte código
em C#:

this.Tables[“PSECAO”][“DESCRICAO”].ToString().ToUpper() != “RM SISTEMAS”

O teste acima verifica se o valor digitado no campo em questão contém ou não a substring RM
SISTEMAS.

Como desejamos interromper o fluxo da Fórmula Visual quando determinada condição for atendida,
devemos então arrastar e soltar sobre a atividade de se/senão uma atividade do tipo “Gerar Exceção”.

Esse tipo de atividade possui exatamente essa finalidade (interromper o fluxo), e como é “filha” de um “se/
senão”, só será disparado caso a condição de sua atividade mãe for verdadeira.

Selecionando a atividade rmsThrowActivity1, basta que a propriedade “Mensagem de Erro” seja


preenchida. Esta mesma mensagem será exibida em diálogo de erro quando o usuário tentar executar
tarefa associada cuja condição da atividade mãe seja atendida.

Caso todos os passos tenham sido executados corretamente, a janela de erro será exibida ao se alterar o
cadastro de uma seção que atenda à condição estabelecida na regra:

16 Fórmula Visual Todos os direitos reservados.


5. Observações Importantes sobre a atividade prática

l Ao se associar uma Fórmula Visual a um gatilho que é disparado por uma visão, os campos da
visão podem ser facilmente acessados através das propriedades “Tables”,“DataSet” e Fields.

l Tanto os novos valores quanto valores antigos do registro podem ser acessados através da
Fórmula Visual pelos gatilhos disparados antes de se salvar o registro

l A atividade “se/senão” é utilizada para se criar uma estrutura condicional cuja lógica é determinada
pelo usuário final.

l Para dominar a utilização das fórmulas visuais, é necessário conhecer “como as atividades se
encaixam”;

l Nessa primeira atividade, já aprendemos um tipo de encaixe que deve ser memorizado: devemos
utilizar a propriedade: this.Tables[“nome_tabela”][“nome_campo”] quando desejarmos criar um
diagrama que será disparado por um gatilho que tratará um registro.

l Outro fato importante é o de se considerar a criação de uma fórmula visual para cada gatilho. Isso
se faz necessário, pois em cada situação, a condição de “encaixe” das atividades muda.

l Além de criar, a fórmula visual deverá ser associada corretamente ao cadastro ou processo para
o qual foi criada;

Resumo sobre as principais atividades disponíveis para se criar uma Fórmula Visual:

Consulta SQL

l Utilizada para se realizar consultas SQL cadastradas no sistema que retornem uma ou N linhas.
Normalmente utilizada em operações de validação;
l Apesar da quantidade de propriedades, é uma das atividades mais fáceis de ser utilizadas.

Todos os direitos reservados. Fórmula Visual 17


Expressão

l Utilizada para se executar expressões (as mesmas já utilizadas no produto, como por exemplo, no
gerador de relatórios). É uma ótima alternativa para tratamento de dados.
l A sintaxe das expressões não foi alterada e continua muito semelhante ao Object Pascal.

Para Cada Iteração

l Equivalente à estrutura de repetição foreach do C#, é normalmente utilizado para iteração sobre
uma coleção de itens.
l Sua propriedade principal é a “Fonte de dados”;
l Pode utilizar uma transação por Iteração.

Executar Processo

l Realiza a chamada a um processo;


l Quando vinculada a um cadastro, pode ser “amarrada” ao mesmo através da propriedade “Tabela
de chave Primária”.
l Apenas parâmetros simples são exibidos na aba de propriedades

Segunda Atividade Prática


Criar uma Fórmula Visual que restrinja o cadastro de dependentes a no máximo dois dependentes por
funcionário (cadastro de funcionários .net)

A atividade atual necessita realizar uma consulta SQL para identificar o número de dependentes
cadastrados para um determinado funcionário. Com base no seu resultado, será avaliado se o funcionário
em questão pode ou não conter o novo dependente com base na quantidade já cadastrada.

18 Fórmula Visual Todos os direitos reservados.


1) Criar a consulta SQL no módulo de consultas SQL

SELECT COUNT(CODCOLIGADA) QTD FROM PFDEPEND (NOLOCK)


WHERE CODCOLIGADA = :CODCOLIGADA AND CHAPA = :CHAPA

2) Criar a nova fórmula Visual

3) Criar Diagrama, inserindo na ordem as atividades:

l ConsultaSQL
l Se/Senão
l Gerar Exceção

Todos os direitos reservados. Fórmula Visual 19


4) Associar a consulta SQL criada no passo 1 à atividade “Consulta SQL”. A associação é feita através de
clique com botão direito do mouse.

5) Após associada a consulta SQL, os parâmetros são automaticamente atualizados na aba “propriedades”.
Falta então definir a origem dos parâmetros da sentença:
l Como a Fórmula Visual será associada a uma visão, no gatilho disparado antes de salvar o registro,
poderemos associar os parâmetros às colunas do registro selecionado
l Podemos então utilizar a propriedade Fields para esse fim.

20 Fórmula Visual Todos os direitos reservados.


6) Clicar em cada um dos parâmetros na atividade de consulta, selecionando a propriedade “Item”.
Pressionando a tecla “F2”, será possível informar qual o nome da coluna do registro atual será passado
como parâmetro.

7) Configurar os respectivos parâmetros conforme as imagens abaixo. Observe que o tipo retornado deve
ser compatível com o tipo do parâmetro.

8) Selecionar com o mouse a atividade “ifElseBranchActivity1” e definir a expressão a ser avaliada. Através
da propriedade Fields dessa atividade, poderemos ler as colunas do primeiro registro retornado pela
consulta. A coluna que procuramos é “QTD”:

Todos os direitos reservados. Fórmula Visual 21


9) Selecionar a atividade rmsThrowActivity no diagrama e preencher a propriedade “Mensagem de Erro”
com o seguinte texto:

“Existe limite de 4 dependentes por funcionário!”

10) Salvar a Fórmula Visual e associá-lo à visão de dependentes, no gatilho “Antes de Salvar o Registro”

Teste) Acessar o cadastro de funcionários do RM Labore, editar um funcionário e tentar incluir mais de 4
dependentes para o mesmo.

Observações:
l Identificamos que a atividade de consulta SQL utiliza apenas consultas cadastradas no sistema , sendo
que não é possível escrever a consulta dentro da própria atividade.

l Uma das formas mais convenientes de se recuperar o valor retornado pela consulta SQL é através da
propriedade:
atividadeConsultaSql.Fields[“nome_campo”]

l CUIDADO para não fazer confusão entre Fields da atividade e Fields da fórmula visual!

Aprimorando a Fórmula Visual da Segunda Atividade Prática


Adaptar a fórmula visual anterior para que a mesma exiba uma mensagem de erro customizada, com
informações do cadastro do funcionário.

22 Fórmula Visual Todos os direitos reservados.


Você deverá utilizar a atividade de expressão para definir uma mensagem de erro mais amigável. Para
isso, será necessário acrescentar a referida atividade ao diagrama anterior, conforme imagem.

Em seguida, edite a propriedade “Expressão” da atividade récem-adicionada preenchendo-a conforme


ilustração abaixo:

Então, vincular o resultado da expressão à propriedade “Mensagem de Erro” da atividade


rmsThrowActivity1:

Todos os direitos reservados. Fórmula Visual 23


Ao testar o cadastro de dependentes, a nova mensagem de erro será apresentada:

Observação:
Na atividade Se/Senão, é possível reaproveitar condições já utilizadas em outras fórmulas visuais clicando-
se no nome da condição, e selecionando a condição desejada por este mesmo critério:

Exercícios

Criar uma fórmula visual que não permita a alteração ou inclusão de um funcionário com salário
menor que R$ 500,00.

Tempo para execução: 15 Min

24 Fórmula Visual Todos os direitos reservados.


Terceira Atividade Prática
Criar Fórmula Visual que resultará em uma nova coluna no cadastro da visão do cadastro de funcionários.
A coluna irá indicar se o funcionário possui valores forçados no envelope para a competência e período
atuais (do usuário).

1) Definir a consulta SQL para retornar se um funcionário possui valores forçados no envelope para a
competência / Período atuais:

SELECT COUNT(VALORESFORCADOS) VALORESFORCADOS FROM PFPERFF(NOLOCK) WHERE


CAST(CODCOLIGADA AS INTEGER) = :CODCOLIGADA AND CHAPA = :CHAPA AND ANOCOMP = :ANOCOMP
AND MESCOMP = :MESCOMP AND CAST(NROPERIODO AS INTEGER) = :PERIODO AND VALORESFORCADOS
=1

2) Para se filtrar os dados da consulta SQL, poderemos utilizar as colunas da visão de funcionários:
CODCOLIGADA e CHAPA. Mas as colunas MESCOMP , ANOCOMP e NROPERIODO precisam ser recuperadas
através da atividade de “Leitura de Parâmetros do RM Labore”. Esta será então a primeira atividade da
Fórmula Visual.

3) A atividade “Para cada Iteração” requer uma coleção de itens para ser utilizada, que é configurada
através da propriedade Lista de Itens. Ao acrescentar essa nova atividade, já sabemos de antemão que
essa lista será o DataSet de leitura da visão (o evento associado será o “após ler visão”.

Anotações

Todos os direitos reservados. Fórmula Visual 25


4) Para setar a lista, será necessário dar um duplo clique com o mouse na coluna da esquerda (conforme
imagem abaixo) e setar a propriedade “Rows” da primeira tabela da visão.

5) Acrescentar uma atividade “sequência” dentro de rmsForEachActivity1. Seu nome é bem sugestivo. Essa
atividade delimita uma sequencia de execução para todas as suas atividades filhas. É necessária quando
queremos executar mais de uma atividade em sequência:

6) Acrescentar uma atividade “Consulta SQL” dentro de rmsForEachActivity1. Muita atenção: esta fórmula
visual executará uma consulta SQL para cada registro da visão. Se o filtro da visão não for muito restritivo,
o tempo de carga da mesma poderá aumentar bastante.

26 Fórmula Visual Todos os direitos reservados.


7) Uma vez acrescentada, será necessário configurar a atividade para que a mesma execute a consulta
SQL criada anteriormente. Para tal, basta clicar sobre a mesma com o botão direito selecionando em
seguida o menu de contexto “Selecionar Consulta SQL”.

8) Os parâmetros de funcionário deverão ser apontados para a propriedade Fields da atividade


rmsForEachActivity. É essa a atividade que cuida de selecionar os registros um a um em um laço de
repetição. Para preencher a propriedade “Fields” com o nome da coluna desejada utilize a tecla “F2”.

9) Os demais parâmetros serão preenchidos a partir das propriedades da atividade de parâmetros do


RMLabore (RMSFopParamsProc). Esses parâmetros serão sempre os mesmos para todos os funcionários
dentro da execução da fórmula visual

Todos os direitos reservados. Fórmula Visual 27


10) Verifique se os parâmetros foram preenchidos corretamente, conforme a ilustração abaixo:

11) Agora será necessário recuperar o resultado da consulta SQL e gravá-lo em uma nova coluna da visão.
Para isso, iremos utilizar uma única atividade:“Expressão”. Essa é a função básica da atividade de expressão:
vincular propriedades de uma atividade à outra atividade ou objeto da fórmula visual.

12) A atividade de expressão “enxerga” as demais atividades do diagrama. Portanto, podemos recuperar o
resultado da consulta digitando:

Nome_da_atividade_de_consulta.Nome_daColuna

13) Agora, precisamos definir onde o valor da expressão calculada será gravado. Sabemos que será
calculado um valor para cada registro. Portanto, podemos declarar uma nova coluna na propriedade
Fields da atividade “rmsForEachActivity1”.

28 Fórmula Visual Todos os direitos reservados.


14) Basta então associar a fórmula visual criada ao gatilho que desejamos disparar, selecionando também
a tela de cadastro para a qual a fórmula visual foi elaborada. A nova coluna deverá então ser exibida ao se
acessar a visão de funcionários.

Quarta Atividade Prática


Crie uma fórmula visual que seja chamada a partir de uma visão, como um processo. Este processo deverá
aumentar em 10% o salário de todos os funcionários selecionados na visão cujo salário seja menor que
1000,00.

1) Cadastrar a nova fórmula Visual

Todos os direitos reservados. Fórmula Visual 29


2) Acrescentar uma atividade “Para cada Iteração”, setando sua propriedade “Lista de Itens” conforme a
ilustração.

3) Como será necessário executar uma série de atividades em sequência para atingirmos o objetivo final,
precisaremos então acrescentar dentro da atividade anterior uma atividade de sequência.

4) Será necessário avaliar o valor atual do salário do funcionário selecionado. Para isso, será incluída a
atividade “se/senão”, cuja condição de regra declarativa será setada conforme ilustração abaixo:

30 Fórmula Visual Todos os direitos reservados.


5) Sempre que se desejar alterar um registro, é necessário ler o mesmo através da atividade “Ler de
Registro”. Logo, vamos acrescentar essa atividade e configurar a sua propriedade “Nome do DataServer”
para ler do cadastro de funcionários.

6) Configurar a chave primária da leitura, para que a atividade faça a leitura correta do registro. Observe
que a origem do registro lido É A ATIVIDADE rmsForEachActivity!

Todos os direitos reservados. Fórmula Visual 31


7) Para realizar o cálculo do salário (salário atual + 10%), utilizaremos a atividade “Expressão”, configurando
sua fórmula conforme ilustração abaixo.

8) Precisamos ainda indicar que o resultado da fórmula será gravado na coluna “SALARIO” do registro lido.
Faremos isso na propriedade “Valor Calculado” da fórmula. Observe que ele deve ser setado na atividade
rmsReadRecordActivity!

Anotações

32 Fórmula Visual Todos os direitos reservados.


9) Para gravar as alterações, será necessário incluir uma atividade do tipo “Salvar Registro”. A propriedade
“Nome do Dataserver” deve ser idêntica à da atividade de leitura. A propriedade “Fonte de Dados” deve
ser configurada conforme ilustração.

10) Por fim, será necessário associar a Fórmula Visual a um processo de um cadastro. No nosso caso em
especial, esse processo deve ser a visão do cadastro de funcionários

11) Então, é só testar a atividade de fórmula visual no cadastro de funcionário:

Todos os direitos reservados. Fórmula Visual 33


Observações:
l Identificamos que para se realizar qualquer alteração no banco de dados, é necessário utilizar no mínimo
3 atividades: Ler Registro, expressão e Salvar Registro;
l Identificamos também que é necessária a utilização de uma atividade do tipo “para cada iteração”
sempre que desejarmos executar atividades para uma lista ou coleção de itens/registros.

Quinta Atividade Prática

Acrescentar o envio de e-mail à atividade anterior.

1) Acrescentar a atividade de “envio de E-Mail”, configurando a prop. “Destinatários” conforme abaixo.

2) Observe que podemos “enxergar” a coluna “E-Mail” tanto na atividade de leitura de registro quanto na
atividade “para cada iteração”. Utilizamos “AsStringArray” por que a propriedade “Destinatário” espera um
array de endereços (mesmo que tenha apenas um item).

34 Fórmula Visual Todos os direitos reservados.


3) Para se criar uma mensagem individualizada do e-mail utilizaremos uma atividade Expressão. Basta
incluí-la no diagrama conforme ilustração ao lado, configurando sua expressão conforme imagem
abaixo:

4) Precisamos então direcionar o valor da expressão para a propriedade do corpo da mensagem da atividade
de envio de e-mails. Faremos isso na propriedade “Valor Calculado” da fórmula recém adicionada;

5) Na execução da fórmula visual, podem ocorrer erros durante sua chamada (E-Mail não existe, registro
nulo, etc...) Podemos então tratar estes erros em algumas atividades através da opção“Exibir manipuladores
de Fault”.

Todos os direitos reservados. Fórmula Visual 35


6) Devemos então soltar uma atividade do tipo “tratar exceção” dentro da atividade “faultHandlerActivity”.
A atividade de falta ficará então como na figura abaixo:

7) É possível então determinar uma ação a ser tomada de acordo com a exceção ocorrida. Neste exemplo,
vamos informar a exceção do tipo mais primitivo possível, garantindo então que a ação seja executada
sempre que QUALQUER TIPO DE ERRO ocorrer. Comportamento desejado:

Quando ocorrer erro de qualquer natureza, um e-mail deverá ser enviado para uma pessoa específica
informando o problema.

8) Selecionar a atividade e exceção e informar a propriedade “Fault Type” conforme ilustração.

9) Precisamos então preencher a atividade de Envio de E-Mail de forma apropriada para que em caso de
erro, uma mensagem seja enviada para um E-Mail já conhecido.

36 Fórmula Visual Todos os direitos reservados.


Sexta Atividade Prática
Criar uma fórmula visual que irá encadear a execução de 2 processos na emissão de um cheque

1) Abra a visão de Extrato de Caixa e clique no menu de processos. Observe que o processo de gerar
cheque manual e o de Compensar estão ligados à visão, ou seja: são executados para os itens selecionados
dessa visão.

2) Observe também que o processo de Compensação pede um parâmetro: a data de compensação

3) Executaremos duas atividades: uma para gerar o cheque e outra para compensá-lo. Vamos então
adicionar 3 atividades ao nosso diagrama: duas para a execução de processo e uma atividade de Expressão,
que será utilizada para o preenchimento do parâmetro do segundo processo.

Todos os direitos reservados. Fórmula Visual 37


4) Na primeira atividade informe, conforme ilustração, o processo a ser chamado e a tabela de chave
primária. Observe que nenhum parâmetro de processo aparece na aba propriedades.

5) Na segunda atividade informe, conforme ilustração, o processo a ser chamado e a tabela de chave
primária. Observe o parâmetro (Data de compensação) de processo que aparece na aba propriedades.

6) Na atividade de Expressão, digitaremos na propriedade “expressão” a função “Today”, que retorna à


data atual do sistema. Observe que o parâmetro do processo não aparece na listagem de propriedades
da segunda atividade de execução de processo. Logo, precisaremos “ligar” essa propriedade na própria
atividade...

38 Fórmula Visual Todos os direitos reservados.


7) Configurar o parâmetro “Data de compensação para receber o valor calculado da atividade de Expressão.
Observe que é necessário informar o tipo correto do parâmetro.

8) Associar a fórmula ao cadastro de “Extrato de Caixa”, na aba “Processos de Workflow”

9) Cadastrar um novo cheque e testar o processo de fórmula visual.

Observações:
l É possível disparar a execução de processos pela fórmula visual;
l Processos que estão vinculados a um ou mais cadastros podem ser vinculados através da propriedade
tables.
l Parâmetros simples podem ser preenchidos na aba de propriedades;
l Observação: parâmetros complexos (listas, arrays e datasets) podem ser preenchidos, desde que o

Todos os direitos reservados. Fórmula Visual 39


desenvolvedor crie um designer editor para o referido tipo de propriedade. A tendência é que o usuário
não necessite utilizar as atividades de execução de processo em um futuro breve, pois as equipes de
desenvolvimento poderão criar atividades específicas para o mesmo fim.

Exercícios

Criar um novo campo complementar no cadastro de funcionários, e em seguida, crie uma fórmula
visual para forçar o preenchimento deste campo na edição do registro.
Tempo para execução: 35 Min

Anotações

40 Fórmula Visual Todos os direitos reservados.


CONCLUSÃO
Com o recurso de Fórmulas visuais ...

Posso

l Criar novas regras de validação de um cadastro com base nele mesmo ou em outros cadastros,
desde que não viole a integridade referencial de um registro no banco.
l Automatizar tarefas encadeando leituras, gravações e execução de processos através da Fórmula
Visual.
l Criar novas colunas e restrições em cadastros já existentes
l Até onde a sua criatividade (e a atividade) permitir...

Não posso

l A fórmula visual não é um recurso completo de Fórmula Visual. Portanto, não será possível criar
uma regra de aprovação de requisições (por exemplo) em um único diagrama.
l Não será possível abrigar o cadastro de um registro em uma tabela filha à partir do cadastro de
item em sua tabela mãe.
l Não é possível chamar cadastros ou telas de diálogo através das fórmulas visuais.

Anotações

Todos os direitos reservados. Fórmula Visual 41

You might also like