Olá, bom dia!
Gostaria de saber se existe a possibilidade de pegar e-mail que está registrado para o aprovador atual de uma atividade.
Falo isso, pois, estou personalizando um envio de e-mail através do evento BeforeStateEntry e lá eu preciso passar um array com o e-mail do aprovador da atividade. Mas nesse caso, os aprovadores costumam alterar frequentemente, inviabilizando realizar com um e-mail “chumbado”.
Essa é a melhor maneira de se customizar esse envio de e-mail ?
Olá, para pegar o usuário que finalizou a tarefa, use o dataset processTask, pegue o colleagueId, depois use no dataset colleague para pegar o e-mail… Segue um exemplo
var task = "NUMERO DA TAREFA"
var numSolicitacao = "NUMERO DA SOLICITACAO"
/* processTask => DATA SET PARA PEGAR USUARIO QUE EXECUTOU A TASK */
var c1 = DatasetFactory.createConstraint("choosedSequence", task, task, ConstraintType.MUST)
var c2 = DatasetFactory.createConstraint("processTaskPK.processInstanceId", numSolicitacao, numSolicitacao, ConstraintType.MUST)
var constraints = new Array(c1, c2)
var ds = DatasetFactory.getDataset("processTask", null, constraints, null);
/* colleague => DATASET PARA PEGAR O E-MAIL DO USUARIO USANDO COMO CONSTRAINT O RESULTADO DO DATASET processTask */
c1 = DatasetFactory.createConstraint("colleaguePK.colleagueId", ds.getValue(0, 'processTaskPK.colleagueId'), ds.getValue(0, 'processTaskPK.colleagueId'), ConstraintType.MUST)
constraints = new Array(c1)
ds = DatasetFactory.getDataset("colleague", null, constraints, null)
var mail = ds.getValue(0, "mail")
Acho que isso resolve. Qualquer coisa responde aí que a gente vai testando.
Abs
3 curtidas
Olá eduardo, bom dia!
Primeiramente muito obrigado pela ajuda!
Segundo:
- Uma dúvida, nesse caso eu vou conseguir pegar o e-mail do usuário somente depois da aprovação, correto? Pois eu precisava pegar o e-mail da pessoa antes mesmo de ela aprovar
Olá Julio.
Da sim. Nesse caso você precisa pegar o usuário responsável pela tarefa .
Você vai usar a mesma consulta, porém, na hora que buscar no dataset colleague, você vai mudar o campo recuperado do dataset processTask
Onde está:
c1 = DatasetFactory.createConstraint("colleaguePK.colleagueId", ds.getValue(0, 'processTaskPK.colleagueId'), ds.getValue(0, 'processTaskPK.colleagueId'), ConstraintType.MUST)
Você coloca:
c1 = DatasetFactory.createConstraint("colleaguePK.colleagueId", ds.getValue(0, 'choosedColleagueId'), ds.getValue(0, 'choosedColleagueId'), ConstraintType.MUST)
Lembrando que se você for fazer no formulário, muda como pegar o valor do dataset, usa-se ds.values[0].choosedColleagueId.
Se eu entendi certo é isso.
Abs.
3 curtidas