Enviar e-mail personalizado para um grupo

Boa tarde,

Estou tentando enviar um email personalizado para um grupo de pessoas porem quando faço a consulta do dataset e passo para o destinatário em um for, ele envia apenas para o primeiro usuário do grupo e da erro. Como posso fazer?

Segue fonte abaixo:


function afterProcessCreate(processId) {

    try { // Monta mapa com parâmetros do template
        var email         = hAPI.getCardValue('email_solic');
        var idProces     = parseInt(getValue("WKNumProces"));
        var endFluig     = 'https://embr...';
        var parametros = new java.util.HashMap();

        parametros.put("Link"            , endFluig + idProces);
        parametros.put("NTicket"        , getValue("WKNumProces"));
        parametros.put("Solicitante"    , hAPI.getCardValue("nome_solic"));
        parametros.put("Departamento"    , hAPI.getCardValue("dept_solic"));
        parametros.put("Modulo"            , hAPI.getCardValue("mod_solic"));
        parametros.put("Descricao"    , hAPI.getCardValue("desc_solic"));

        parametros.put("subject", "SOLICITAÇÃO FLUIG N° " + getValue("WKNumProces")); // Monta lista de destinatários

        var destinatarios = new java.util.ArrayList();

        destinatarios.add(email);

        var c1 = DatasetFactory.createConstraint("colleagueGroup.groupId", "HelpDesk", "HelpDesk", ConstraintType.MUST);

        var constraints = new Array(c1);
        var campo = new Array("colleagueGroupPK.colleagueId", "colleagueGroupPK.groupId")

        var gtr = DatasetFactory.getDataset("colleagueGroup", campo, constraints, null);

        for(var i = 0; i < gtr.rowsCount; i++) {
         destinatarios.add( gtr.getValue(i, "colleagueGroupPK.colleagueId") );
        }

           notifier.notify("admin", "tpl_hdinicio", parametros, destinatarios, "text/html");

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

    }

Na documentação diz que pode passar a matrícula (colleagueId), mas eu sempre passei direto o e-mail e nunca tive problemas. Tanto que o seu primeiro destinatário você colocou o e-mail e conseguiu enviar corretamente né.

Sim, consegui enviar e nesse fonte eu não sei o por que ele envia para a primeira pessoa do grupo e para de enviar, ele da erro e apresenta o seguinte erro NOK - Wrapped java.lang.IndexOutOfBoundsException: Index 2 out of bounds for length 2 (#30)

Boa tarde,

Resolvi com a ajuda que o Bruno Gasparetto deu, eu fiz o DS voltar o e-mail em vez da matricula e fico como esta abaixo.


function afterProcessCreate(processId) {

    try { // Monta mapa com parâmetros do template
        var email         = hAPI.getCardValue('email_solic');
        var idProces     = parseInt(getValue("WKNumProces"));
        var endFluig     = 'https://embr...';
        var parametros = new java.util.HashMap();

        parametros.put("Link"            , endFluig + idProces);
        parametros.put("NTicket"        , getValue("WKNumProces"));
        parametros.put("Solicitante"    , hAPI.getCardValue("nome_solic"));
        parametros.put("Departamento"    , hAPI.getCardValue("dept_solic"));
        parametros.put("Modulo"            , hAPI.getCardValue("mod_solic"));
        parametros.put("Descricao"    , hAPI.getCardValue("desc_solic"));

        parametros.put("subject", "SOLICITAÇÃO FLUIG N° " + getValue("WKNumProces")); // Monta lista de destinatários

       var destinatarios = new java.util.ArrayList();

        var dsColleague = DatasetFactory.getDataset("colleague", null, null, null);
        for (i = 0; i < dsColleague.rowsCount; i++) {
            var dsColCoID = dsColleague.getValue(i, "colleaguePK.colleagueId");
            var dsColMail = dsColleague.getValue(i, "mail");

            var c1 = DatasetFactory.createConstraint("colleagueGroupPK.groupId",
                    "HelpDesk", "HelpDesk", ConstraintType.MUST);
            var constrains1 = new Array(c1);
            var dsColleGroup1 = DatasetFactory.getDataset("colleagueGroup", null,constrains1, null)

            for (j = 0; j < dsColleGroup1.rowsCount; j++) {
                var dsCGid1 = dsColleGroup1.getValue(j, "colleagueGroupPK.colleagueId");

            if (dsColCoID == dsCGid1) {
                destinatarios.add(dsColMail);
            }
        }
    }

           notifier.notify("admin", "tpl_hdinicio", parametros, destinatarios, "text/html");

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

    }