Bom dia, preciso de ajuda criei um template de e-mail com intuito de notificar um e-mail pro usuário que iniciou o processo do fluxo, estou utilizando o evento de processo afterTaskComplete, a duvida que tenho esta no parametro de matricula e no parâmetro destinatário, o que preciso passar neles pra notificar apenas o usuário que iniciou, segue abaixo o código do template e do evento ate onde eu fiz, se alguém souber me de um help por favor.
<html>
<head>
<title>ABC </title>
<link href="https://dominio.com.br/globalmailsender/resources/global.css" rel="stylesheet" type="text/css">
</head>
<body leftmargin="0" topmargin="0" marginheight="0" marginwidth="0">
<div align="left">
<table border="0" cellpadding="0" cellspacing="0">
<tr><td>
<img src="https://dominio.com.br/portal/api/servlet/image/1/custom/logo_image.png">
</td></tr>
</table>
</div>
<br />
<span class="DescrMsgForum">Olá, ${SOLICITANTE}!</span>
<br />
<div align="left">
<table cellspacing="0" cellpadding="0" border="0">
<tbody>
<tr>
<td>
<p class="DescrMsgForum" type="text">
Através da solicitação <strong style='color:black;'>${NRSOLICITACAO}</strong>,
<br>
<p> O Acesso que você pediu para o usuario foi liberado</p>
<p>foi liberado e finalizado</p>
</p>
</td>
</tr>
</tbody>
</table>
</div>
<br/>
</body>
</html>
function afterTaskComplete(colleagueId, nextSequenceId, userList) {
var numeroDaAtividadeQueEnviaEmail = 35;
// Assim você pega o número da atividade atual
var atividadeAtual = getValue("WKNumState");
// você pode comparar se a atividade atual é pra disparar o e-mail
// ou comparar com a atividade destino
if (atividadeAtual != numeroDaAtividadeQueEnviaEmail) {
return;
}
var nome_completo = fluigAPI.getUserService().getCurrent().getFullName();
try{
//Monta mapa com parâmetros do template
var parametros = new java.util.HashMap();
parametros.put("SOLICITANTE", nome_completo);
parametros.put("NRSOLICITACAO", getValue("WKNumProces"));
//Este parâmetro é obrigatório e representa o assunto do e-mail
parametros.put("subject", "ASSUNTO");
//Monta lista de destinatários
//var destinatarios = new java.util.ArrayList();
//destinatarios.add(hAPI.getCardValue("delcleciano.bastos@superabc.com.br"));
//Envia e-mail
notifier.notify(100068, "NOTIFICATION", parametros, userList, "text/html");
}
catch(e)
{
log.info(e);
}
}
Talvez algo assim ajude:
/**
*
*
* @param {string} colleagueId Matrícula do usuário corrente
* @param {number} nextSequenceId Número da Atividade Destino
* @param {java.util.ArrayList<string>} userList Matrículas de usuários destino
*/
function afterTaskComplete(colleagueId, nextSequenceId, userList) {
var numeroDaAtividadeQueEnviaEmail = 35;
// Assim você pega o número da atividade atual
var atividadeAtual = getValue("WKNumState");
// você pode comparar se a atividade atual é pra disparar o e-mail
// ou comparar com a atividade destino
if (atividadeAtual != numeroDaAtividadeQueEnviaEmail) {
return;
}
try {
var user = fluigAPI.getUserService().getCurrent();
// Monta mapa com parâmetros do template
var parametros = new java.util.HashMap();
parametros.put("SOLICITANTE", user.getFullName());
// Essa concatenção com string vazia garante que o valor será uma string
parametros.put("NRSOLICITACAO", "" + getValue("WKNumProces"));
// Este parâmetro é obrigatório e representa o assunto do e-mail
parametros.put("subject", "ASSUNTO");
// Monta lista de destinatários
// var destinatarios = new java.util.ArrayList();
// destinatarios.add(hAPI.getCardValue("delcleciano.bastos@superabc.com.br"));
// Envia e-mail
// o Código é a matrícula do usuário e já vem como string
// userList eu acredito ser a lista de usuários responsáveis da tarefa. Precisa confirmar isso.
notifier.notify(user.getCode(), "NOTIFICATION", parametros, userList, "text/html");
} catch(e) {
log.error(e);
}
}
Se você esquecer de enviar qualquer parâmetro que está declarado no seu template o Fluig vai dar erro e interromper o envio. Então é bom olhar o log do servidor pra ver o que mais pode estar acontecendo de errado.
Alterei meu template, mas entendi a questão do parametro, posso mandar o novo template pra voce me ajudar?
Outra duvida eu preciso do onNotify, tentei aqui mas nao deu certo , coloquei “admin” como primeiro parametro no metodo notify e nao funciounou, sera que preciso colocar alguma tarefa responsavel por receber esse email?
Só atualizar seu post com as mudanças e avisar. Conforme consigo algum tempo eu ajudo sim. O primeiro parâmetro da notifier.notify é a matrícula. Qual a matrícula do usuário que vai disparar o e-mail? Quanto ao evento global onNotify ele serve pra você mudar o comportamento dos disparos automáticos de notificação que o Fluig faz.
A matricula do usuário é um number 100068, ae passo essa matricula como number ou como string? na vdd a intenção é colocar a matricula do usuário que iniciar o fluxo, nesse caso seria var nome_completo = fluigAPI.getUserService().getCurrent().getFullName(); teria como ?
irei atualizar o template.
Os itens que vão nos parâmetros precisam ser todos strings. A matrícula, embora seja um número, é armazenada como string e a função notify exige que seja string. Eu atualizei a função só fazendo essas pequenas correções na que você postou no seu post.
Vou passar pra string? O seu esta rodando? se tiver , deve ser erro no fluxo entao, tem alguma sugestao? Vi suas correções ali , vou alterar, vlw
Não testei no meu servidor. Porém eu tenho alguns processos que disparam notificações por e-mail e não tive problemas com elas. Só precisei fazer o template de e-mail (você cadastrou o template no Fluig né?) e passar os parâmetros.
Cadastrei ele no painel de controle com o nome de NOTIFICATION, mas mesmo assim não ta funcionando, depois peguei e criei a função onNotify pra bloquear o convite_padrao, que nesse caso é o template padrão do fluig, quero que chegue o template personalizado mas não esta sendo retornado.
e o que aparece no log do Fluig? Tem que ver se o Fluig está disparando algum erro.
Sou novato, ainda nao consegui mexer com o log, saberia me dizer o caminho do log?
Se você tem acesso remoto ao servidor basta ir na pasta de instalação dele e então em appserver\domain\servers\fluig1\log\server.log
. Pode também, pelo navegador, ir no Painel de Controle → Controle de Log e então baixar o log completo
Valeu amigo, deu tudo certo, aprendi a olhar o log e ainda consegui retornar um email personalizado