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!
3 comentários

Postagens mais visitadas deste blog

[eXo] - Remover janela de solicitação de Registro

[Kettle] - Ajuste de problema com horário de verão

Pegando informações de Sessão no Oracle e equivalente no MSSQL