willian.eti.br
Todos os artigos
Como Enviar E-mail Pelo Fluig: Script e Configuração Passo a Passo
Foto por sue hughes · Unsplash · Unsplash License
Fluig

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.

Willian Silva··4 min de leitura

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

Tags

Fluig