Boa tarde,
O que você pode fazer é incluir um campo SELECT que exiba os grupos cadastrados no Fluig e no seu evento buscar os usuários do Grupo e enviar o email para os mesmos.
Exemplo:
Formulário:
<input id="part" class="hide" name="cod_grp">
<input type="zoom" id="grupos" class="form-control" name="grupos"
data-zoom="{'displayKey':'groupDescription',
'datasetId':'group','filterValues':'groupPK.companyId,1',
'fields':[{'field':'groupDescription','label':'Nome do Grupo','search':'true'
},{'field':'groupId',
'label':'Código'}] }">
<script type="text/javascript">
function setSelectedZoomItem(selectedItem) {
if (selectedItem.inputName == "grupos") {
eval('$("#cod_grp").val(selectedItem.groupId)');
}
}
</script>
Evento:
var field = hAPI.getCardValue("cod_grp");
// Consulta o Dataset para ver quem sao os usuarios deste grupo
var grpCode = DatasetFactory.createConstraint("colleagueGroupPK.groupId", field, field, ConstraintType.MUST);
var chavesDS = new Array( grpCode );
var dsUsrGrp = DatasetFactory.getDataset("colleagueGroup", null, chavesDS, null);
for(var j = 0; j < dsUsrGrp.rowsCount; j++) {
destinatarios.add( dsUsrGrp.getValue(j, "colleagueGroupPK.colleagueId") );
log.info("[AVISO] Adicionou usuario: " + dsUsrGrp.getValue(j, "colleagueGroupPK.colleagueId"));
}
EDIT:
Para permitir múltiplos:
Formulário:
<div class="table-responsive col-md-6">
<table tablename="tbGrupo" id="tbGrupo" noaddbutton="true" nodeletebutton="true" colspan="1"
class="table table-condensed table-striped table-responsive">
<thead>
<tr>
<th>Grupo</th>
<th>
<span class="fluigicon fluigicon-plus-sign fluigicon-md" onclick="wdkAddChild('tbGrupo');"></span>
</th>
</tr>
</thead>
<tbody>
<tr>
<td>
<input id="part" class="hide" name="cod_grp">
<input type="zoom" id="grupos" class="form-control" name="grupos"
data-zoom="{'displayKey':'groupDescription',
'datasetId':'group','filterValues':'groupPK.companyId,1',
'fields':[{'field':'groupDescription','label':'Nome do Grupo','search':'true'
},{'field':'groupId',
'label':'Código'}] }">
</td>
<td>
<span class="fluigicon fluigicon-minus-sign fluigicon-md" onclick="fnWdkRemoveChild(this);"></span>
</td>
</tr>
</tbody>
</table>
</div>
<script>
function setSelectedZoomItem(selectedItem) {
field = selectedItem.inputName;
campo = field.substr(0,6);
if (campo == "grupos") {
aux = field.substr(6, field.length);
eval('$("#cod_grp' + aux + '").val(selectedItem.groupId)');
}
</script>
Evento:
// Como nao tem acesso direto ao form.getChildrenIndexes, tente usar essa 'medida de contorno'
for (var i = 1; i <= 99; i++) {
try {
var field = hAPI.getCardValue("cod_grp___" + i); // pega o codigo do grupo
if ( (field!= "") && (field != null) && (field!="undefined") ){
// Consulta o Dataset para ver quem sao os usuarios deste grupo
var grpCode = DatasetFactory.createConstraint("colleagueGroupPK.groupId", field, field, ConstraintType.MUST);
var chavesDS = new Array( grpCode );
var dsUsrGrp = DatasetFactory.getDataset("colleagueGroup", null, chavesDS, null);
for(var j = 0; j < dsUsrGrp.rowsCount; j++) {
destinatarios.add( dsUsrGrp.getValue(j, "colleagueGroupPK.colleagueId") );
log.info("[AVISOS] Adicionou usuario: " + dsUsrGrp.getValue(j, "colleagueGroupPK.colleagueId"));
}
} else{ continue; }
}catch(err) {
// Se nao conseguiu pegar o valor, vai pro proximo
continue;
}
}
Qualquer dúvida, comenta aqui..
Boa sorte.