
Como Enviar E-mail Pelo Fluig: Script e Configuração Passo a Passo
Aprenda a configurar envios automáticos de e-mail no TOTVS Fluig via script customizado. Notifique usuários de processos de forma simples.
Objetivo
Iremos construir um template que seja possível enviar lista de dados para melhor otimizar nosso template e código.
O artigo oficial de envio de e-mail pelo Fluig está disponível neste link, portanto o que irei destacar abaixo foram resultados de observações e estudos.
O objetivo deste estudo é entender quais tecnologias o Fluig utiliza para entregar a solução de E-mail e do Template de E-MAIL e estudar uma forma mais limpa de construir os templates.
Utilize estas informações para agregar em seus estudos, porém sempre que houver dúvidas consulte o suporte e documentação oficial do Fluig.
Disclaimer: as ações** __ são responsabilidades dos usuários.**
Caso seu fluig não dispare os e-mails consulte a documentação: fluig não dispara e-mail.
Freemarker
O freemarker é uma tecnologia em java para construção de templates, é bem utilizado nas construções de widgets.
Fazer um bom uso do FreeMarker com certeza gera ganhos em produtividade e manutenção de códigos.
Recomendo a leitura neste link: https://freemarker.apache.org/docs/ref_directive_list.html
Enviar o E-mail pelo Fluig
Para enviar o E-mail pelo Fluig é necessário utilizar o recurso onNotify, confira de forma detalhada neste link: https://tdn.totvs.com/display/public/fluig/Templates+de+e-mail+personalizado
Resultado Final
Ao executar o passo a passo abaixo você deverá ter um resultado semelhante a este:

Passo a Passo
Evento de Processo
Crie um processo e acrescente o código abaixo em um evento de processo, como por exemplo: o BeforeStateEntry
Veja abaixo que estamos utilizando a variável UFS e a variável CarrosList, desta forma enviamos a lista de objetos que será lida pelo FreeMarker.
try{
//Monta mapa com parâmetros do template
var parametros = new java.util.HashMap();
//Veja mais detalhes em:
parametros.put("NOME_USUARIO", "UsuarioFluig");
parametros.put("CODIGO_USUARIO", "UsuarioFluig");
parametros.put("calculo", 1+1);
parametros.put("SERVER_URL", fluigAPI.getPageService().getServerURL() ) ;
//E-mail
parametros.put("subject", "Assunto do E-mail");
var ufs = new java.util.ArrayList();
ufs.add("GO");
ufs.add("SP");
ufs.add("AC");
var carrosList = new java.util.ArrayList();
var carro = new java.util.HashMap();
carro.put("modelo", "GOL");
carro.put("cor", "BRANCO");
carro.put("motor", "1.0");
carrosList.add(carro);
var carro = new java.util.HashMap();
carro.put("modelo", "Civic");
carro.put("cor", "cinza");
carro.put("motor", "5.0");
carrosList.add(carro);
var carro = new java.util.HashMap();
carro.put("modelo", "PALIO");
carro.put("cor", "verde");
carro.put("motor", "1.5");
carrosList.add(carro);
var carro = new java.util.HashMap();
parametros.put("estados", ufs);
parametros.put("carros", carrosList);
//Monta lista de destinatários
var destinatarios = new java.util.ArrayList();
destinatarios.add("meu@email.com.br");
//Envia e-mail
notifier.notify("UsuarioFluig", "template_teste", parametros, destinatarios, "text/html");
} catch(e){
throw e;
log.info(e);
}Após criar o processo crie um novo arquivo html chamado template_teste.html e salve ele em seu computador, em seguida acesse o fluig > Painel de Controle > Templates de E-mail e crie um template importando este arquivo html.
HTML – Template de E-mail Fluig
Veja que as variáveis são passadas dentro deste bloco ${estado} , onde neste exemplo o estado é o nome do meu objeto no evento de processo, que foi recebido na variável de parametros.
Eu recomendo que teste utilizar da seguinte forma, ${estado!”}, pois assim a variável estado se não existir irá imprimir um valor em branco.
Este tipo de situação acontece, onde a variável pode não ter sido gerada corretamente, principalmente em elementos do tipo lista e geração dinâmica.
Utilizar este modelo onde substitui a inexistência da variável por um valor em branco pode suprimir erros, pois no primeiro exemplo, caso a variável estado não exista poderá haver erros na geração e disparo do e-mail.
Este é um exemplo de envio de e-mail <br/> <br/>
A soma de 1 + 1 é ${calculo} <br/> <br/>
A url do fluig é: <a href="${SERVER_URL!''}" <br/> <br/>
<html>
<#if estados??>
<tr>
<td>UF ( Estado )</td>
</tr>
<#list estados as estado>
<tr>
<td>
${estado!''}
<td>
</tr>
</#list>
</#if>
</html>
-------------------------------------------
LISTA DE CARROS
-------------------------------------------
<#if carros??>
<html>
<tr>
<td>Marca</td>
<td>Cor</td>
<td>Motor</td>
</tr>
<#list carros as carro>
<tr>
<td>${carro.modelo!''}</td>
<td>${carro.cor!''}</td>
<td>${carro.motor!''}</td>
</tr>
</#list>
</tr>
</html>
</#if>Referências
Acessos em: 10 de ago. 2021.
https://freemarker.apache.org/docs/ref_directive_list.html
https://api.fluig.com/old/sdk/com/fluig/sdk/service/PageService.html
https://fluiggers.com.br/t/como-pegar-url-do-ambiente-fluig-que-estou/157/7