Alterar template de e-mail padrão no evento 'onNotify'

Alteramos o assunto de um e-mail de cobrança (tarefa atrasada) e adicionamos novos destinatários, para isso incluímos a seguinte lógica no evento 'onNotify' do processo:


function onNotify(subject, receivers, template, params)
{
    if (template == "TPLOVERDUE_TASK_USER_RESPONSIBLE")
    {
        var loginGestor = hAPI.getCardValue('loginGestor');    
        receivers.add(loginGestor);
        subject.add("Renovação/Transferência de Instrumentos está atrasada");
    }
}

O código acima funciona perfeitamente, porém, gostaríamos também de alterar o template do e-mail. Incluímos novo template customizado no Fluig e adicionamos a seguinte linha de código no evento onNotify:


template = "oem-transferencia-instrumentos-01";

Porém, esta linha é ignorada (o log não acusa nenhum erro) e os e-mails continuam sendo enviados com a template padrão.

É possível alterar a template ou apenas consulta-la?

No caso dos e-mails personalizados, utilize o método notifier.notify()

Exemplo:


notifier.notify("MATRICULA-REMETENTE", "CODIGO-TEMPLATE", parametros, destinatarios, "text/html");

As informações deste método estão disponíveis na página Envio de E-mail Personalizado

O evento onNotify deve ser utilizado para os e-mails padrões do fluig

O método notifier.notify não pode ser invocado de dentro do evento onNotify, segundo documentação do Fluig “Após cadastrar um novo template, é possível utilizá-lo para enviar e-mail a partir de qualquer um dos eventos do processo (exceto no onNotify)”.

Preciso customizar o e-mail de tarefa atrasada, como fazer isso?

Então, é que geralmente é o inverso, nós utilizamos o notifier.notify e então o onNotify é chamado devido a isso. Daria pra customizar o template diretamente, mas isso gera o problema de que ele pode ser alterado durante alguma atualização.

Abri chamado para o suporte e descobri que a partir da versão 1.5.13 é possível chamar o método notifier.notify dentro do evento onNotify.

Segue solução:


var INICIO                         = 4;
var DISTRIBUICAO_AUTOMATICA        = 17;
var RENOVAR_TRANSFERIR_INSTRUMENTO = 7;
var RENOVAR_POSSE                  = 9;
var ACEITAR_TRANSFERENCIA          = 11;
var FIM                            = 14;

function onNotify(subject, receivers, template, params)
{
    log.info("##############################################");
    log.info("oem-transferencia-instrumentos: onNotify"); 
    log.info("WKNumProces: " + getValue("WKNumProces"));
    log.info("WKNumState : " + getValue("WKNumState"));
    log.info("subject    : " + subject);
    log.info("receivers  : " + receivers);
    log.info("template   : " + template);    
    log.info("params     : " + params);
    log.info("##############################################");    

    //Tarefa atrasada
    if (template == "TPLOVERDUE_TASK_USER_RESPONSIBLE") 
    {        
        var numInstrumento    = hAPI.getCardValue('codPatrimonio');
        var descInstrumento   = hAPI.getCardValue('descPatrimonio');
        var loginRemetente    = hAPI.getCardValue('loginRemetente');
        var loginGestor       = hAPI.getCardValue('loginGestor');
        var atividadeAtual    = getValue("WKNumState");        

        if (atividadeAtual == RENOVAR_TRANSFERIR_INSTRUMENTO)
        {
            //Limpa destinatários do e-mail com template padrão
            receivers.clear();

            //////////////////////////////////////////////////////

            //Adiciona colaborador e seu gestor como destinatarios
            var destinatarios = new java.util.ArrayList();
            destinatarios.add(loginRemetente);
            destinatarios.add(loginGestor);


            //////////////////////////////////////////////////////

            var parametros = new java.util.HashMap();
            parametros.put("NOME_COLABORADOR", params.get("WDK_TaskUser"));
            parametros.put("NUM_INSTRUMENTO" , numInstrumento);
            parametros.put("DESC_INSTRUMENTO", descInstrumento);
            parametros.put("URL_FLUIG"       , params.get("WDK_TaskLink"));

            //Este parâmetro é obrigatório e representa o assunto do e-mail
            parametros.put("subject", "Renovação/Transferência de Instrumentos está atrasada");

            //////////////////////////////////////////////////////

            //Envia e-mail
            notifier.notify("adm", "oem-transferencia-instrumentos-01", parametros, destinatarios, "text/html");
        }        
    }
}

Bom dia,

Nesse modelo, o gestor e o remetente recebem o e-mail individual, ou no mesmo e-mail mostra os dois destinatários?

At.te

Suelin