Criando um Projeto de Mailling com Pentaho Data Integration

Dias atrás precisei atender rapidamente uma demanda que surgiu sobre o envio de um aviso aos clientes e parceiros de algumas mudanças de procedimentos de cobrança do setor financeiro. Como no sistema atualmente utilizado pelo cliente não havia uma rotina de Mala-direta pronta acabei optando pelo Pentaho Data Integration como ferramenta para realizar este trabalho.
Para isso então fiz uso dos seguinte componentes:
  1. Table Input - Buscando os e-mails dos contatos da base de dados do cliente;
  2.  Mail Validator - Para validar os e-mails vindos da base, marcando como válidos ou não;
  3. Filter Rows - Para filtrar somente os e-mails filtrados como válidos, registrando os inválidos num arquivo texto (4o componente);
  4. Text File Output - Para gravar em um arquivo texto de log os e-mails inválidos da base;
  5. Add Constant Values - Para adicionar campos com valores constantes para uso, principalmente, no componente de envio do e-mail (9o componente);
  6. Get XML Data - Usei para carregar o modelo HTML do e-mail, para poder adicioná-lo ao corpo da mensagem e não como anexo;
  7. Merge Join - Para juntar a variável do modelo HTML com os registros vindos da base de dados (fluxo vindo do 5o componente);
  8. Delay Row - Utilizado para dar um tempo entre cada envio de e-mail. Usei mais por precaução, para evitar a sobrecarga do servidor de E-mail;
  9. Send Mail - Componente final que após os tratamentos anteriores cumpre o objetivo principal do projeto, que é o envio do aviso aos destinatários da base de dados do cliente.

O projeto final ficou então assim:

Obs.: O projeto levou em torno de 2 horas para ficar pronto. Isso ocorreu devido a dificuldade inicial que tive em definir uma forma de enviar o aviso no corpo do e-mail no formato html. Para levar como anexo não levou 30 minutos. A forma que encontrei então foi encapsular o html dentro de um XML usando as tags "<![CDATA[ conteudo ]]>", carregando este conteúdo para um campo que chamei de "modelo".

Referências:
Site Pentaho: http://www.pentaho.com
Site PDI: http://kettle.pentaho.org/
Documentação PDI: aqui!

Comentários

Este comentário foi removido por um administrador do blog.
Boa noite Alexsandro, tudo bem com você? Poderia disponibilizar os arquivos xml e html utilizados no exemplo? Um forte abraço

Att
Lucas Schulmeister
Alexsandro Haag disse…
Lucas,
ainda não consegui pegar a transformação no meu hd externo de backup, que está guardado em alguma caixa lá em casa. Mas fiz uma transformação nova mostrando como se envia conteúdo html pelo email. Vou postar ainda hoje...

Postagens mais visitadas deste blog

[Openfire] - Ajuste de horário no cliente Spark

Verificar uso de disco em partição ASM do Oracle 11g no Linux

[Kettle] - Ajuste de Memória de Utilização