Você está na página 1de 10

Fórmulas Visuais / Workflows « Artigos « Ethos Consultores http://www.ethosconsultores.com.

br/2011/12/formulas-visuais-workflows/

Home
Empresa
Produtos
Contato
Artigos e Cases
Artigos
Cases

Fórmulas Visuais / Workflows


Escrito por Daniel Carvalho em terça-feira, dezembro 20, 2011 · Deixe um comentário

A TOTVS tem constantemente aprimorando seus sistemas e a uma das novidades presentes desde a versão 11.0 são os Workflows ou Fórmulas Visuais.

Para que serve?


A ferramenta serve para criarmos uma série de situações no sistema como validações de campos, validação de situações cadastrais, envio de e-mail,
geração de exceções, etc. Para entender, vamos a exemplos que já são aplicados em diversos clientes:

1. Envio de e-mail ao se cadastrar um novo produto: Em diversas situações as entradas do sistema não são corretas pois os campos cadastrais não
foram preenchidos (campos contábeis / fiscais), então com a execução de uma fórmula visual, podemos alertar, via e-mail que um novo produto /
serviço foi cadastrado.

2. Validação de campo complementar em lançamento: Em algumas situações o cliente possui, no lançamento da NF, um campo complementar que
precisa estar preenchido com um valor válido, nestes casos o sistema não permite transformar um campo complementar em campo obrigatório, logo a
fórmula visual resolve este problema.

3. Informar responsável sobre demanda: Neste caso específico, vou utilizar um exemplo do TOTVS Obras e Projetos (RM Solum), nesta situação, o
usuário ao gerar os pedidos de compras e atingir 80% do total permitido, alertará o responsável de compras que um determinado insumo atingiu seu
limite.

Como fazer?
Os sites da TOTVS estão cheios de referências de como fazer diversos tipos de fórmulas visuais, sendo esse link considerado o mais relevante por nós:

http://totvsconnect.blogspot.com/2011/07/dicas-repositorio-de-formulas-visuais.html

Como o repositório já demonstra a criação de diversas fórmulas, mas nenhuma delas passo-a-passo, estaremos detalhando neste post a criação de uma
fórmula visual de nível médio de dificuldade.
A Fórmula
A finalidade da fórmula que estaremos criando é justamente o 3.o exemplo deste artigo. Vamos detalhar seu funcionamento:

No TOTVS Obras e Projetos (RM Solum), ao gerar os pedidos de compra, o sistema deverá verificar se o total consumido do insumo atingiu 80%
do total planejado, caso tenha atingido, o responsável pelo setor de compras deverá receber um e-mail informando que este insumo atingiu este
nível.
Como a ideia é criar um passo-a-passo não iremos criar uma trava básica desta fórmula que seria o pré-requisito que o responsável receba apenas
1 e-mail daquele insumo, para evitar receber N e-mails enquanto o usuário gera os pedidos de compra.

Vamos começar:
1. Acesse o TOTVS Obras e Projetos – Utilitários – Workflow
2. Clique em Adicionar e preencha os dados solicitados. Caso você não tenha nenhuma Categoria cadastrada, cadastre uma antes ou na própria tela de
edição.

1 de 10 27/07/2012 14:13
Fórmulas Visuais / Workflows « Artigos « Ethos Consultores http://www.ethosconsultores.com.br/2011/12/formulas-visuais-workflows/

Cadastro da fórmula visual

3. Após preencher os dados salve, clique em OK.


4. Vamos agora cadastrar a SQL para esta fórmula. Acesse o menu Utilitários – Consultas SQL e crie uma nova consulta.
Como a ideia aqui é fornecer um passo-a-passo de fórmula visual, não entraremos em detalhes referentes a consulta criada, mas a titulo de exemplo, ela
é basicamente a mesma SQL utilizada para o quadro resumo dos pedidos do TOTVS Obras e Projetos.
SQL: FV.001 – Formula Visual para checar nível de material
SELECT DISTINCT MPRJ.CODPRJ, MPRJ.DESCRICAO, MNECESSIDADEMAT.IDPEDIDO, MNECESSIDADEMAT.CODCOLIGADA, MNECESSIDADEMAT.IDPRJ,

MISM.IDISM,
MISM.CODISM,
MISM.DESCISM,
MISM.CODUND,
TPRD.IDPRD,
TPRD.DESCRICAO,
CASE WHEN
((SELECT ISNULL(SUM(ISNULL(MI.QTDEPEDIDA, 0)), 0)
FROM MPEDIDOMAT (NOLOCK),
MNECESSIDADEMAT MN(NOLOCK),
MITEMPEDIDOMATERIAL MI(NOLOCK)
WHERE MN.CODCOLIGADA = :CODCOLIGADA_N
AND MN.IDPRJ = :IDPRJ_N
AND MN.IDISM = MNECESSIDADEMAT.IDISM
AND MN.CODCOLIGADA = MPEDIDOMAT.CODCOLIGADA
AND MN.IDPRJ = MPEDIDOMAT.IDPRJ
AND MN.IDPEDIDO = MPEDIDOMAT.IDPEDIDO
AND MPEDIDOMAT.TIPOREQUISICAO = 0
AND MI.CODCOLIGADA = MN.CODCOLIGADA
AND MI.IDPRJ = MN.IDPRJ
AND MI.IDNECESSIDADE = MN.IDNECESSIDADE)
/
(SELECT SUM(MCURVASISM.QUANTPLANEJADO)
FROM MCURVASISM (NOLOCK)
WHERE CODCOLIGADA = :CODCOLIGADA_N
AND IDPRJ = :IDPRJ_N
AND IDISM = MNECESSIDADEMAT.IDISM
AND VALIDO = 1)) >= 0.8 THEN '1' ELSE '0' END AS PERC,
QTD_NECESS = (SELECT SUM(MCURVASISM.QUANTPLANEJADO)
FROM MCURVASISM (NOLOCK)
WHERE CODCOLIGADA = :CODCOLIGADA_N
AND IDPRJ = :IDPRJ_N
AND IDISM = MNECESSIDADEMAT.IDISM
AND VALIDO = 1),
QTD_PEDIDA = (SELECT ISNULL(SUM(ISNULL(MI.QTDEPEDIDA, 0)), 0)
FROM MPEDIDOMAT (NOLOCK),
MNECESSIDADEMAT MN(NOLOCK),
MITEMPEDIDOMATERIAL MI(NOLOCK)
WHERE MN.CODCOLIGADA = :CODCOLIGADA_N
AND MN.IDPRJ = :IDPRJ_N
AND MN.IDISM = MNECESSIDADEMAT.IDISM
AND MN.CODCOLIGADA = MPEDIDOMAT.CODCOLIGADA
AND MN.IDPRJ = MPEDIDOMAT.IDPRJ
AND MN.IDPEDIDO = MPEDIDOMAT.IDPEDIDO
AND MPEDIDOMAT.TIPOREQUISICAO = 0
AND MI.CODCOLIGADA = MN.CODCOLIGADA
AND MI.IDPRJ = MN.IDPRJ
AND MI.IDNECESSIDADE = MN.IDNECESSIDADE),
QTD_EXTRA = (SELECT ISNULL(SUM(ISNULL(MITEMPEDIDOMATEXTRA.QTDEPEDIDO,0)),0)
FROM MITEMPEDIDOMATEXTRA
WHERE MITEMPEDIDOMATEXTRA.CODCOLIGADA = :CODCOLIGADA_N
AND MITEMPEDIDOMATEXTRA.IDPRJ = :IDPRJ_N
AND MITEMPEDIDOMATEXTRA.IDPRD = TPRD.IDPRD),
QTD_PENDENTE = (SELECT ISNULL(SUM(ISNULL(MCURVASISM.QUANTPLANEJADO, 0)), 0)
FROM MCURVASISM (NOLOCK)
WHERE CODCOLIGADA = :CODCOLIGADA_N
AND IDPRJ = :IDPRJ_N
AND IDISM = MNECESSIDADEMAT.IDISM) - (SELECT ISNULL(SUM(ISNULL(MI.QTDEPEDIDA, 0)), 0)
FROM MPEDIDOMAT (NOLOCK),
MNECESSIDADEMAT MN(NOLOCK),
MITEMPEDIDOMATERIAL MI(NOLOCK)
WHERE MN.CODCOLIGADA = :CODCOLIGADA_N
AND MN.IDPRJ = :IDPRJ_N
AND MN.IDISM = MNECESSIDADEMAT.IDISM
AND MN.CODCOLIGADA = MPEDIDOMAT.CODCOLIGADA
AND MN.IDPRJ = MPEDIDOMAT.IDPRJ
AND MN.IDPEDIDO = MPEDIDOMAT.IDPEDIDO
AND MPEDIDOMAT.TIPOREQUISICAO = 0
AND MI.CODCOLIGADA = MN.CODCOLIGADA

2 de 10 27/07/2012 14:13
Fórmulas Visuais / Workflows « Artigos « Ethos Consultores http://www.ethosconsultores.com.br/2011/12/formulas-visuais-workflows/

AND MI.IDPRJ = MN.IDPRJ


AND MI.IDNECESSIDADE = MN.IDNECESSIDADE)

FROM MNECESSIDADEMAT (NOLOCK),


MISM (NOLOCK),
MITEMPEDIDOMATERIAL (NOLOCK),
TPRD (NOLOCK),
MPRJ(NOLOCK)
WHERE MNECESSIDADEMAT.CODCOLIGADA = :CODCOLIGADA_N
AND MNECESSIDADEMAT.IDPRJ = :IDPRJ_N
AND MNECESSIDADEMAT.IDPEDIDO = :IDPEDIDO_N
AND MNECESSIDADEMAT.CODCOLIGADA = MISM.CODCOLIGADA
AND (MNECESSIDADEMAT.IDPRJ = MISM.IDPRJ OR MISM.IDPRJ = 0)
AND MNECESSIDADEMAT.IDISM = MISM.IDISM
AND MITEMPEDIDOMATERIAL.CODCOLIGADA = MNECESSIDADEMAT.CODCOLIGADA
AND MITEMPEDIDOMATERIAL.IDPRJ = MNECESSIDADEMAT.IDPRJ
AND MITEMPEDIDOMATERIAL.IDNECESSIDADE = MNECESSIDADEMAT.IDNECESSIDADE
AND MITEMPEDIDOMATERIAL.CODCOLIGADA = TPRD.CODCOLIGADA
AND MITEMPEDIDOMATERIAL.IDPRD = TPRD.IDPRD
AND MPRJ.CODCOLIGADA = MNECESSIDADEMAT.CODCOLIGADA
AND MPRJ.IDPRJ = MNECESSIDADEMAT.IDPRJ
GROUP BY MNECESSIDADEMAT.IDPEDIDO, MNECESSIDADEMAT.CODCOLIGADA, MNECESSIDADEMAT.IDPRJ,
MISM.IDISM,
MNECESSIDADEMAT.IDISM,
MISM.CODISM,
MISM.DESCISM,
MISM.CODUND,
TPRD.IDPRD,
TPRD.DESCRICAO, MPRJ.CODPRJ, MPRJ.DESCRICAO

5. Com a SQL cadastrada, vamos voltar a tela da fórmula visual e dar um duplo clique no item cadastrado anteriormente. A tela de edição da fórmula
visual deve ser exibida.

Fórmula Visual

6. Na aba Atividades, selecione o componente Consulta SQL e arraste até o workflow.


7. Depois de arrastado, clique sobre o item e depois em Propriedades.

Consulta SQL

8. Clique com o botão direito sobre o item e depois em “Selecionar Consulta SQL” e buque pela sentença cadastrada anteriormente.
9. Nas propriedades o sistema terá carregado os parâmetros para serem preenchidos. Como vamos buscar os dados da requisição que estiver sendo feita
no momento, vamos setar os parâmetros da seguinte maneira:

Clique no botão “…” na frente do parâmetro CODCOLIGADA_N


Será aberta uma tela de seleção do WorkFlow, selecione Fields, Item[0] e pressione F2, a opção ficará passível de edição, então vamos até o
colchetes e iremos escrever o nome do campo que queremos puxar da visão do usuário, neste caso CODCOLIGADA e dê um ENTER.
Após isto, clique em AsInteger (pois o CODCOLIGADA é do tipo inteiro).
A tela deverá ficar assim:

3 de 10 27/07/2012 14:13
Fórmulas Visuais / Workflows « Artigos « Ethos Consultores http://www.ethosconsultores.com.br/2011/12/formulas-visuais-workflows/

Parâmetros da SQL

10. Repita o procedimento para todos os parâmetros, eles devem ficar com o seguinte texto:

Activity=RMSWorkflow, Path=Fields.Item["CODCOLIGADA"].AsInteger
Activity=RMSWorkflow, Path=Fields.Item["IDPEDIDO"].AsInteger
Activity=RMSWorkflow, Path=Fields.Item["IDPRJ"].AsInteger

11. Essa SQL pode gerar mais de uma linha de retorno, pois ela buscará, item a item da requisição, quem ultrapassou ou não 80% do consumo antes de
enviar um e-mail, então temos que inserir um componente que seja responsável por percorrer todas as linhas da SQL.

Para tanto, selecione a aba Atividades e adicione abaixo do componente SQL o componente “Para cada Iteração”.

12. Temos que definir para este componente, quem fornecerá os registros para que ele atue, neste caso será a nossa consulta SQL. Clique no componente
“Para cada Iteração”, vá em Propriedades e clique duas vezes no ícone amarelo da ”Lista de itens”.

Na tela que se abre, busque por rmsConsSQLActivity1, Tables[0] e selecione o componente Rows.

4 de 10 27/07/2012 14:13
Fórmulas Visuais / Workflows « Artigos « Ethos Consultores http://www.ethosconsultores.com.br/2011/12/formulas-visuais-workflows/

Componente "Para cada Iteração"

Feito isto, tudo o que for inserido dentro deste componente agora, será feito tantas vezes quanto forem os resultados da SQL.

13. Agora vamos adicionar as nossas condições ao sistema, ou seja, determinar quando será enviado o e-mail.

Vá na aba Atividades e selecione o componente “Se/Senão” dentro do componente “Para cada Iteração”, sua tela deve estar dessa maneira neste
momento:

5 de 10 27/07/2012 14:13
Fórmulas Visuais / Workflows « Artigos « Ethos Consultores http://www.ethosconsultores.com.br/2011/12/formulas-visuais-workflows/

Tela antes das condições

Dentro do ifElseBranchActivity1, vamos inserir as condições que desejamos.

Para tanto, selecione o lado esquerdo do ifElse, clique em “Propriedades”, clique em Condition e depois em “Declarative Rule Condition”.

A propriedade permitirá a você abri-lá, você então poderá ver outra propriedade, chamada de “Condition Expression”, clique no botão logo a frente dela
e depois em “New” e será aberta a seguinte tela:

Condition Rule

A condição é escrita em linguagem similar ao C#, abaixo está o texto que deve ser adicionado a nossa condição:

this.rmsForEachActivity1.Fields["PERC"].AsString == "1"

Se você estudou a SQL viu que nela mesmo nós estamos retornando o valor 1 ou 0, sendo que 1 significa que o item chegou a 80% de consumo e 0 não.

Diversas vezes será mais fácil criar as verificações dentro da própria SQL do que no Condition Rule da fórmula Visual.

14. Agora vamos adicionar um componente de expressão que irá conter o texto do E-Mail. Adicione o componente Expressão dentro do
ifElseBranchActivity1, clique em “Propriedades”, “Expressões” e digite um texto similar ao demonstrado abaixo:
'Prezado,' +NewLine + NewLine +
'O sistema TOTVS Gestão de Obras e Projetos constatou que um
insumo ultrapassou o limite de 80% de consumo: ' +NewLine+
'--- Projeto: '+rmsForEachActivity1.CODPRJ+' - '+rmsForEachActivity1.DESCRICAO+NewLine+NewLine+
rmsForEachActivity1.CODISM+' - '+rmsForEachActivity1.DESCISM +NewLine+
'--- Necessidade: '+rmsForEachActivity1.QTD_NECESS+NewLine+
'--- Pedido: '+rmsForEachActivity1.QTD_PEDIDA+NewLine+
'--- Extra: '+rmsForEachActivity1.QTD_EXTRA+NewLine

15. O próximo passo é enviar o e-mail.

Adicione um componente de “Envio de E-Mail” logo abaixo da expressão. Clique no mesmo e em propriedades e configure conforme desejar as
propriedades:

Assunto – Ex: [E-Mail Automático] Alerta de Curva ABC


Destinatários. O destinatário pode ser retornado via consulta SQL em um determinado usuário ou inserido manualmente, para fins de exemplo
vamos inserir manualmente. Ex: joao@silva.com.br
Destinatários em cópia / Destinatários em Cópia Oculta
Remetente (pode ser o usuário que está fazendo o pedido, a empresa (filial), a coligada e e-mail padrão do sistema).

6 de 10 27/07/2012 14:13
Fórmulas Visuais / Workflows « Artigos « Ethos Consultores http://www.ethosconsultores.com.br/2011/12/formulas-visuais-workflows/

Texto do E-mail: Clique no botão “…” e selecione rmsForEachActivity1, ifElseActivity1, ifElseBranchActivity1, rmsExpressionActivity1,
Expression e clique em OK.

Componente de E-Mail

Para não termos problemas de formatação no texto de envio, vamos voltar ao componente rmsExpressionActivity1, clicar em “Valor Calculado” e
apontar para o componente de envio de e-mail no campo “Body”.

Valor Calculado

16. Quase prontos! Sua fórmula Visual deve estar parecida com essa:

7 de 10 27/07/2012 14:13
Fórmulas Visuais / Workflows « Artigos « Ethos Consultores http://www.ethosconsultores.com.br/2011/12/formulas-visuais-workflows/

Fórmula Visual Finalizada

17. Falta agora somente adicionar o Gatilho, ou seja, o que faz a nossa fórmula funcionar!

Para tanto, salve a sua fórmula visual, clique sobre ela e depois sobre o ícone “Editar”, acesse a aba “Gatilhos” e clique em novo.

Na tela que se abre, vamos procurar o item “Antes da atualização do registro (Fim)” e a Action “Requisição de Material”.

Gatilho

Conclusão
Pronto! A fórmula visual está pronta, vamos testá-la. Lembre-se de que seu computador deve estar preparado para rodar fórmulas visuais, para
confirmar isso, acesse o site http://totvsconnect.blogspot.com/2011/07/dicas-repositorio-de-formulas-visuais.html e verifique a configuração no final das

8 de 10 27/07/2012 14:13
Fórmulas Visuais / Workflows « Artigos « Ethos Consultores http://www.ethosconsultores.com.br/2011/12/formulas-visuais-workflows/

fórmulas visuais, item 18.

Para testar a mesma, vamos fazer uma requisição de material de um determinado insumo e solicitar todo o seu quantitativo, um e-mail deverá ser
enviado para o destinatário(s) cadastrado(s) na fórmula visual.

Abaixo o e-mail gerado com essa fórmula visual:

E-Mail

A Ethos Consultores conta com know-how para implementar diversas situações com fórmulas visuais, entre em contato conosco sempre que precisar!

Sobre o Autor

Daniel Carvalho é Tecnólogo em Processamento de Dados pela Faculdade Brasileira de Informática (FABRAI), pós-graduado em Administração de
Sistemas de Informação pela Universidade Federal de Lavras (UFLA), MBA em Gestão de Projetos pela Fundação Getúlio Vargas(FGV) e possui
diversos cursos inclusive no exterior.

Arquivado em Artigos · Tags ERP, fórmula visual, RM, Solum, TOTVS, TOTVS Obras e Projetos, workflow

Dê sua opinião

Diga-nos o que está pensando.

Nome(obrigatório)

E-Mail (Não será publicado) (obrigatório)

Website

Busca Rápida

9 de 10 27/07/2012 14:13
Fórmulas Visuais / Workflows « Artigos « Ethos Consultores http://www.ethosconsultores.com.br/2011/12/formulas-visuais-workflows/

Artigos recentes
Fórmulas Visuais / Workflows
Projetos TOTVS
Sales Supermercados
Segurança da Informação para Pequenas e Médias Empresas
TI Verde

Arquivos
dezembro 2011
novembro 2011
setembro 2009

Copyright © 2009 Ethos Consultores · Layout por Paulo Naves · Login

Login

WordPress SEO fine-tune by Meta SEO Pack from Poradnik Webmastera

10 de 10 27/07/2012 14:13

Você também pode gostar