--- title: Interceptando e personalizando o e-mail padrão (onNotify) source: https://tdn.totvs.com/pages/viewpage.action?pageId=852912430 path: \Plataforma Documentação técnica\Personalização\Personalização de e-mail\Interceptando e personalizando o e-mail padrão (onNotify).md --- # Índice - 1 [Introdução](#Interceptandoepersonalizandooemailpadrão(onNotify)-Introdução) - 2 [Sintaxe](#Interceptandoepersonalizandooemailpadrão(onNotify)-Sintaxe) - 3 [Parâmetros](#Interceptandoepersonalizandooemailpadrão(onNotify)-Parâmetros) - 3.1 [subject](#Interceptandoepersonalizandooemailpadrão(onNotify)-subject) - 3.2 [receivers](#Interceptandoepersonalizandooemailpadrão(onNotify)-receivers) - 3.3 [template](#Interceptandoepersonalizandooemailpadrão(onNotify)-template) - 3.4 [params](#Interceptandoepersonalizandooemailpadrão(onNotify)-params) - 4 [Exemplos](#Interceptandoepersonalizandooemailpadrão(onNotify)-Exemplos) - 4.1 [Alterando o Assunto quando o e-mail for do tipo "Tarefa sob sua responsabilidade em atraso"](#Interceptandoepersonalizandooemailpadrão(onNotify)-AlterandooAssuntoquandooe-mailfordotipo"Tarefasobsuaresponsabilidadeematraso") - 4.2 [Adicionando um destinatário quando o e-mail for do tipo "Notificação de nova atividade sob sua gerência"](#Interceptandoepersonalizandooemailpadrão(onNotify)-Adicionandoumdestinatárioquandooe-mailfordotipo"Notificaçãodenovaatividadesobsuagerência") - 4.3 [Adicionando um parâmetro o e-mail for do tipo "Solicitação cancelada"](#Interceptandoepersonalizandooemailpadrão(onNotify)-Adicionandoumparâmetrooe-mailfordotipo"Solicitaçãocancelada") # Introdução Diversos e-mails são disparados no Fluig, variando de notificações simples a alertas urgentes. O **onNotify** é um [evento global](../../Desenvolvimento sobre a plataforma/Desenvolvimento de Eventos.md) do Fluig que pode ser criado para interceptar notificações padrão do Fluig, permitindo alterações ou a geração de logs. # Sintaxe ``` funcion onNotify(subject, receivers, template, params) { } ``` # Parâmetros ## subject Uma lista de string que, quando adicionada algum item, modifica o assunto do e-mail para todos os destinatários. Apesar de ser uma lista, apenas o primeiro item da lista será considerado. Então, caso sejam adicionados dois assuntos, somente o primeiro item será usado. ## receivers Uma lista de Strings com os e-mails dos destinatários. Também é possível adicionar outros e-mails, de usuários do sistema ou mesmo e-mails externos, caso seja necessário notificar uma pessoa que não tenho acesso ao sistema. ## template Uma String contendo o código do template (ou tipo) de e-mail que está sendo enviado, permitindo que seja alterado apenas um tipo específico de e-mail. É recomendável que sempre seja verificado o código do template, para evitar que ocorram alterações em outros tipos de e-mail, que não necessitariam de personalização. Este parâmetro é fixo e alterações nele não mudaram o tipo de template a ser utilizado. ## params É um mapa de dados que permite alterar/incluir parâmetros para que sejam apresentados no e-mail. O nome dos parâmetros informados nesse mapa devem ser os mesmos que são utilizados dentro do arquivo de template. # Exemplos ## Alterando o Assunto quando o e-mail for do tipo "Tarefa sob sua responsabilidade em atraso" ``` function onNotify(subject, receivers, template, params) { if (template.equals("TPLOVERDUE_TASK_USER_RESPONSIBLE") != null) { log.info("Modificando o assunto do e-mail para 'URGENTE: Uma tarefa que você é responsável está atrasada'); subject.add("URGENTE: Uma tarefa que você é responsável está atrasada"); } } ``` ## Adicionando um destinatário quando o e-mail for do tipo "Notificação de nova atividade sob sua gerência" ``` function onNotify(subject, receivers, template, params) { if (template.equals("TPLPROCESS_NEW_STATE_TO_MANAGER") != null) { log.info("Adicionando o e-mail 'usuario@dominio.com' a lista de destinatários da notificação de 'Nova atividade sob sua gerência'"); receivers.add("usuario@dominio.com"); } } ``` ## Adicionando um parâmetro o e-mail for do tipo "Solicitação cancelada" ``` function onNotify(subject, receivers, template, params) { if (template.equals("TPLPROCESS_CANCELED") != null) { log.info("Adicionando o parâmetro 'MEU_CAMPO' com o valor 'VALOR'"); params.put("MEU_CAMPO","VALOR"); } } ```