FINALIZADO! Agora sempre que o mecanismo de atribuição for para uma ou mais pessoas, ele vai sempre enviar para quem for, segue…
/**
*
*
* @param {string} colleagueId Matrícula do usuário corrente
* @param {number} nextSequenceId
* @param {java.util.List<string>} userList Lista de matrículas de usuários destino
*/
var tsk_validarNomeProduto = 64
var tsk_cadastrarProduto = 65
function beforeTaskSave(colleagueId, nextSequenceId, userList) {
//ENVIAR EMAIL DE CRIAÇÃO DE SOLICITAÇÃO ASSIM QUE O FORMULÁRIO É SALVO.
if(nextSequenceId == tsk_validarNomeProduto || nextSequenceId == tsk_cadastrarProduto){
//MONTA UM ARRAY COM OS EMAILS DOS DESTINATARIAS DAS MATRICURAS RESPECTIVAMENTE, QUE FORAM PASSADAS EM codDestinatarios
var mailsDestinatarios = []
//VERIFICA SE EXISTE UM POOL (GRUPO OU PAPEIS), PRECISA BUSCAR AS MATRICULAS ANTES NO DATASET DE UM OU DE OUTRO
var UsersPool = new java.util.ArrayList();
var pool = userList.get(0).toString().split(":")[0]
var attr = userList.get(0).toString().split(":")[1]
var nameAttr = userList.get(0).toString().split(":")[2]
if(pool.trim() == 'Pool'){
if(attr == "Role"){
var constraintRole = [DatasetFactory.createConstraint(
"workflowColleagueRolePK.roleId",
nameAttr.trim(),
nameAttr.trim(),
ConstraintType.SHOULD
)]
var coluna = ["workflowColleagueRolePK.colleagueId"]
var Users = DatasetFactory.getDataset(
"workflowColleagueRole",
coluna,
constraintRole,
null
)
}
if(attr == "Group"){
var constraintGroup = [DatasetFactory.createConstraint(
"colleagueGroupPK.groupId",
nameAttr.trim(),
nameAttr.trim(),
ConstraintType.SHOULD
)]
var coluna = ["colleagueGroupPK.colleagueId"];
var Users = DatasetFactory.getDataset(
"colleagueGroup",
coluna,
constraintGroup,
null
)
}
for (var i = 0; i < Users.rowsCount; i++) {
UsersPool.add(Users.getValue(i,coluna))
}
}else{
UsersPool = userList
}
//ADICIONA O EMAIL DO SOLICITANTE
mailsDestinatarios.push(DatasetFactory.createConstraint("colleaguePK.colleagueId",colleagueId,colleagueId,ConstraintType.SHOULD))
for(var i = 0; i < UsersPool.size(); i++){
mailsDestinatarios.push(DatasetFactory.createConstraint("colleaguePK.colleagueId",UsersPool.get(i).toString(),UsersPool.get(i).toString(),ConstraintType.SHOULD))
}
FxEnviarEmail(mailsDestinatarios);
}
}
function FxEnviarEmail(constraintsTo){
var parametros = new java.util.HashMap();
try {
//CONSULTAR O EMAIL DO SOLICITANTE E DOS DESTINATÁRIOS
var colunas = ["mail"]
var getMailDestinatarios = DatasetFactory.getDataset("colleague",colunas,constraintsTo,null);
var strMails = new java.util.ArrayList();
for(var i = 0; i < getMailDestinatarios.rowsCount; i++){
strMails.add(getMailDestinatarios.getValue(i,'mail'))
}
log.info("==============================\n\n" +
"E-MAIL DESTINATÁRIOS: " + strMails +
"\n\n==============================")
//MONTA MAPA COM PARAMETROS DO TEMPLATE
var processo = getValue("WKNumProces").toString();
parametros.put("NUMERO_SOLICITACAO", processo);
parametros.put("NOME_SOLICITANTE", getValue("WKUser").toString());
parametros.put("NOME_PRODUTO", hAPI.getCardValue('NOME_PROD'));
notifier.notify("ia.processos","tpEmailSolicitacaoNovoProduto_Inicio",parametros,strMails,"text/html");
} catch (error) {
log.info("==============================\n\n" +
"HOUVE UM ERRO AO ENVIAR O EMAIL" +
"\n\n==============================")
log.info("==============================\n\n" +
"DESCRIÇÃO DO ERRO" + error +
"\n\n==============================")
}
}