Monitorando Contas de Email
A partir do build 110, o Kankei possui um item de processo que permite monitorar uma conta de email (servidor POP) e importar os dados dos emails para uma dimensão.
Esta feature possui inúmeras utilidades práticas, pois permite que ações sejam executadas em resposta a cada email recebido. Um bom exemplo é um sistema de SAC ou HelpDesk. Os clientes ou usuários poderiam enviar suas dúvidas para um endereço de email específico. O Kankei permite então que aquela conta de email seja monitorada e todos os emails que chegarem nela podem imediatamente iniciar um chamado.
Segue um passo-a-passo completo sobre a feature, desde a criação da dimensão até a configuração do item de processo.
Caso você prefira importar a estrutura dos objetos ao invés de criá-los manualmente, use os links abaixo para fazer o download das estruturas:
Passo 1: Criando a dimensão que armazenará os emails recebidos
Atenção: Ao criar a dimensão, precisaremos tomar o cuidado de definir identificadores para a dimensão e para todas as questões que forem criadas dentro dela, pois os identificadores serão necessários durante a criação do processo de importação. Neste passo a passo, vamos criar as questões com o identificador igual ao nome da questão, para facilitar as coisas.
1) Vamos criar uma dimensão restrita chamada "dimEmailRecebido". Vamos criar nessa dimensão duas questões do tipo "Texto" chamadas "emr-De" e "emr-Assunto" e uma questão do tipo "Texto Longo" chamada "emr-CorpoDaMensagem".
2) Como os emails recebidos podem conter anexos, vamos criar um conjunto chamado "emr-Anexos". Dentro deste conjunto, criaremos uma questão do tipo "Anexo" chamada "emr-Anexo" e uma questão do tipo "Texto" chamada "emr-NomeDoArquivo".
Passo 2: Criando o item de processo
1) Crie um novo processo e clique na opção "Criar novo item". Na janela "Adicionar Item ao Processo", escolha a categoria "Kankei" e selecione o item "Importação KBS/Monitorar Pasta". Clique em "OK".
2) Clique na guia "Template de Importação". Todas as nossas alterações serão feitas nesta guia, portanto as guias "Pasta" e "Destino" podem ser ignoradas.
3) Selecione o primeiro item da árvore (que deve se chamar "Tipo: Nova Importação") e localize a propriedade "Classe para processamento". Para esta propriedade deve ser definida a opção "Email (Servidor POP3)". A seguir, desmarque a opção "Importação utiliza arquivo".
Obs.: Marque também a opção "Empilhar" - esta opção não tem efeito nenhum sobre a importação de emails, mas o ato de marcá-la impede que o sistema emita uma mensagem de aviso quando o processo for executado.
4) Selecione, na árvore, selecione o item "Servidor POP3" (em algumas versões, esta opção aparece incorretamente com o nome "Servidor SMTP", mas este texto já foi corrigido nas versões mais recentes). Nas propriedades deste item, informe os dados do seu servidor POP3.
Obs.: A última propriedade, "Excluir emails do servidor", indica se os emails deverão ser excluídos do servidor POP após o término da importação. Se a intenção é agendar o processo para ser executado automaticamente, esta opção deve ser marcada, caso contrário o sistema irá importar diversas vezes o mesmo email.
5) O próximo passo é informar ao processo os identificadores das questões que irão receber os dados. Clique para expandir o item "Eventos" e escolha o evento "Após ler registro". É neste item que vamos informar as questões da raiz da dimensão.
6) Logo acima da árvore de objetos onde você selecionou o evento, aparece a palavra "Novo" e uma seta apontando para baixo. Clique sobre esta seta para abrir um menu. Precisaremos inserir 3 objetos do tipo "Comando Set" neste evento, usando para isso a primeira opção do menu.
Após ter inserido os 3 comandos Set, edite as propriedades de cada um deles, de acordo com a tabela abaixo. Perceba que a propriedade "Nome do Campo" é o identificador das questões que criamos no passo 1.
| Nome do Campo | Tipo | Campo de Origem |
| emr-De | Obter de outro campo | From |
| emr-Assunto | Obter de outro campo | Subject |
| emr-CorpoDaMensagem | Obter de outro campo | Body |
Até aqui já temos o suficiente para importar os campos básicos do email. Se os emails a serem recebidos não terão anexos ou se os anexos deverão ser ignorados, seu processo está pronto, basta escolher a opção "Confirmar", e salvar o processo. Se você deseja salvar os anexos de email no conjunto que criamos especialmente para isso, continue lendo o passo 3.
Passo 3: Importando anexos
O tratamento de anexos é um pouco mais complexo do que os outros campos, devido ao fato de não haver um limite para o número de arquivos que podem vir anexados no email. Neste exemplo, iremos mostrar como fazer para incluir cada um dos anexos em um registro do conjunto "emr-Anexos" da nossa dimensão "dimEmailRecebido".
1) Selecione o evento "Antes dos Cálculos Bancários" e adicione dois
comandos Set. Atualize a propriedade "Nome do Campo" de cada comando
Set com os valores "emr-Anexo" e "emr-NomeDoArquivo", respectivamente.
Ignore as demais proprieades dos comandos Set, pois este evento não
será executado pela importação de servidor POP3. Só queremos que o
processo saiba que deve gravar algo para as questões "emr-Anexo" e
"emr-NomeDoArquivo".
obj('emr-Anexos') = CreateObject("Collection");
for(var n = 1; n <= obj("Attachments").Count(); n++) {
var anexo = obj("Attachments")(n);
var registro = CreateObject("Bloqueto");
registro("emr-Anexo") = anexo;
registro("emr-NomeDoArquivo") = anexo("FileName");
obj('emr-Anexos').add(registro);
}
A importação disponibiliza os anexos como uma coleção chamada "Attachments". O que o script faz é criar e popular uma outra coleção cujas chaves sejam os identificadores das questões onde queremos que os dados sejam gravados. Perceba que para a questão do tipo anexo precisamos passar a variável "anexo" ao invés de apenas uma das propriedades dela (como fazemos com a questão "emr-NomeDoArquivo").
Conclusão
Se você seguiu os passos acima, o seu processo está pronto para ser executado. A cada execução, o processo irá fazer o download de todos os emails da conta especificada no servidor POP e irá criar um registro na dimensão para cada email recebido.
Perceba que os dados importados para a questão "emr-CorpoDaMensagem" poderão conter códigos HTML, o que provavelmente precisará ser tratado, mas isto foge ao escopo deste artigo.
Outros itens podem ser adicionados ao processo para fazer o tratamento dos registros importados, como por exemplo, para criar chamados em um sistema de HelpDesk.
O processo então pode ser agendado para que seja executado periodicamente (exemplo: a cada 2 horas).
