Enviando e-mail pelo Fluig.
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("[email protected]");
//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
Comments ()