Envio de email em formulários do Fluig

Eu herdei algumas aplicações Fluig. Isto é, temos aqui na empresa algumas que foram desenvolvidas por terceiros de terceiros. A instalação do Fluig também foi feita por terceiros.

Não tenho documentação e precisei fazer novas aplicações.

Entretanto, ao fazer um Formulário do Fluig, na parte de seus eventos, eu vejo no log.info que o código está funcionando.

O principal deles, entretanto, não funciona: estou tentando enviar email toda a vez que alguém cria um Formulário Fluig, que não está vinculado a processo.

Meu problema é que o notifier.notify não funciona.

Procurando no Forum, há dicas de que, para o notifier.notify funcionar é necessário que exista a configuração de email no WCMADMIN, na aba Email da Empresa.

Fui verificar os dados lá e está completamente vazio. Não está habilitado.

Entretanto, vasculhando o código de terceiros no mesmo ambiente, nos processos existentes, está sendo usado o notifier e ele funciona, emails chegam ao usuário quando uma tarefa é cumprida.

Pergunto como isto pode ser possível, isto é, não existir configuração no WCMADMIN e o notifier enviar o email?

UPDATE:

Já vi que tudo que fiz até agora para fazer valer o envio de email está correto. Pode me estar escapando algum conhecimento.

O cenário é o seguinte:

1 - Fiz um formulário no Eclipse e ele não está vinculado a um processo

2 - No evento afterSaveNew deste formulário, pus o seguinte código (conferi nos Usuários a matrícula do administrador, que, no caso é 'yyy'):


function afterSaveNew(form){
    log.info("passou no afterSaveNew fluig");
    try{
        //Monta mapa com parâmetros do template
        var parametros = new java.util.HashMap();
        parametros.put("CORPO", "TESTE");
        //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("mausim@xxx.com.br");
        //Envia e-mail
        notifier.notify("yyy", "meu_template", parametros, destinatarios, "text/html");

    } catch(e){
        log.info(e);
    }
}

3 - Criei um documento baseado no formulário e o log.info do código fez uma entrada no server.log do servidor Fluig, conforme abaixo:

2020-03-31 08:05:23,667 INFO [com.datasul.technology.webdesk.customization.ScriptingLog] (default task-34) passou no afterSaveNew fluig

4 - Entretanto, esta é a última linha do server.log e o email não é enviado. E não há nenhuma mensagem de erro.

5- Será que esta 'tecnologia' notifier.notify só funciona em processos ou em determinados eventos, mas não neste, o afterSaveNew?

6 - O quarto parâmetro, segundo o help do Fluig, diz

consiste em uma lista de códigos de usuários cadastrados no fluig e/ou e-mails diretos para caso seja necessário enviar o e-mail a endereços externos

e, neste caso, como o endereço mausim@xxx.com.br é o mesmo domínio em que existe o Fluig, não funcionaria? Se não funciona com emails do mesmo domínio, será que tem de ser uma matrícula, ao invés de endereço de email?

Se for para pôr uma matrícula, também não funciona, porque já experimentei também.

Mausim, verificou o domain.xml também? Antigamente a configuração era feita exclusivamente por ele, sem a facilidade do WCMADMIN, talvez a configuração tenha acontecido lá há muito tempo e essa não subiu para a aplicação. É uma hipótese. Caso se confirme ou resolva de alguma outra forma, lembre de nós avisar!

Boa sorte.

Grande @Alef! Eu acho que você matou a charada. Achei isto no domain.xml: mail-session jndi-name=“java:jboss/mail/Default” name=“mail” e uma referência a um endereço de email e sua senha. Agora vou verificar como usar isto.

Bacana demais! Mausim, peço que sempre que uma resposta lhe for satisfatória, marque-a como correta. Isso ajuda demais os outros usuários com a mesma dúvida no fórum. O próximo passo é simples. Procura por templates de e-mail. Há várias perguntas relacionadas aqui no fórum.

Tô ciente, @Alef. Marco sempre; mas só marco se realmente for satisfatória, a fim de não dar falsa esperança se não funcionar, ok?

Caro @Alef, não consegui fazer nada com a informação que está no domain.xml, porque lá só consta a senha do email e o nome do usuário do AD do Windows.

Mausim, nesse caso, deve pegar as informações de lá. A documentação antiga de configuração de e-mail pode ajudar. Mas pq não configura o envio pelo wcmadmin?

CAro @Alef, estava me perguntando se eu mexesse no WCMADMIN se não iria conflitar com o que existe no domain.xls e a emenda ficar pior que o soneto. Será que ambas as configurações poderiam conviver?

A do WCMADMIN deve prevalecer, Mausim, ou é isso ou você aquieta sua mente com essa dúvida e faz o uso do evento notify assim como é feito nos outros eventos. Mausim, se estiver “emperrado” e precisando de apoio, pode me chamar no skype, sempre tem um jeito de resolver. Inclusive de mandar e-mail pelo Fluig. Abraço!

@Alef, eu já tentei o notify com as mesmas configurações do que existe em produção nuns eventos de processo, mas não funcionou no meu formulário. O log.info registra a atividade, mas não envia o email. Como fica silencioso, eu não sei o que está acontecendo. No log do servidor aparece somente o log.info de teste que pus no evento. Assim, notifiy não me adianta. Mas eu já experimentei pôr um outro endereço no WCMADMIN e funcionou, mas parou de funcionar o que existia em produção, por ter outros parâmetros certamente. Mas estou tentando ver no AD do Windows o email do usuário e vou testar.

A quem interessar possa, descobri dois problemas no envio de email.

1 - A primeira razão de não conseguir enviar email para endereço nenhum era porque a matrícula do remetente tinha que estar, como string que é, exatamente como está grafada no WCMADMIN. Lá, no meu caso, a matrícula era 'Yyy' e eu tinha posto 'yyy', com três 'y' em minúsculas.

Então, o código abaixo, no meu caso, ficaria correto apenas com a troca de capitalização da matrícula, conforme:


function afterSaveNew(form){
    log.info("passou no afterSaveNew fluig");
    try{
        //Monta mapa com parâmetros do template
        var parametros = new java.util.HashMap();
        parametros.put("CORPO", "TESTE");
        //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("mausim@xxx.com.br");
        //Envia e-mail
        notifier.notify("Yyy", "meu_template", parametros, destinatarios, "text/html");

    } catch(e){
        log.info(e);
    }
}

2 - Por fim, quando o destinatário é a mesma pessoa que está comandando o salvamento (no caso do meu exemplo), por ser o mesmo usuário e ter o mesmo domínio do remetente, o email não é enviado.

Acredito que seja porque o Fluig entende que se você está registrando, não precisa ser avisado da criação do documento (mas isto é um chute).