Retornar valores do campo zoom e consultar em um dataset no envento de processo

Olá Pessoal, tenho seguinte situação, em meu formulario existe um campo zoom que consulta o dataset colleague, e salva o nome dos colaboradores nesse campo, preciso que quando esses usuários sejam selecionados os seus Ids sejam gravados em um campo de formulario oculto para que eu possa em uma atividade conjunta atribui-la por esse campo oculto com os ids dos responsáveis... Tentei pegar o valor do campo zoom e consulta-lo no dataset colleague por um evento de processo, porém retorna que "getDatasetValues" não é definido

```[function beforeStateLeave(sequenceId){

log.info("===[ INICIOU O PROCESSO ]=========================="); nomes = hAPI.getCardValue("envolvidos"); log.info(nomes);

var filter = new Object(); var colleagueIds = ""; filter["colleagueName"] = nomes;

var colleagues = DatasetFactory.getDatasetValues("colleague", filter); for (colleague in colleagues) {

if (colleagueIds) colleagueIds += ",";

colleagueIds += colleagues[colleague]["colleaguePK.colleagueId"];

} form.setValue("idResponsavel",colleagueIds);

}```

Alguma ideia?

Boa tarde Danielle, acho que você poderia fazer isso direto na função setSelectedZoomItem do seu zoom, algo tipo: function setSelectedZoomItem(selectedItem) { var colleagueId = selectedItem["colleagueId"]; $('#campo_hidden_de_usuarios').val(colleagueId); } }

Ola Diego, eu tenho uma maneira dessa que utilizo no setSelectedZoomItem , porém ele carrega no campo oculto o valor do ultimo registro que faço no zoom
Por ex quando seleciono o usuario 1 ele carrega o 1 no campo oculto, quando adiciono o usuario 2 ele apaga o 1… não consegui criar um laço dentro do setSelectedZoomItem …

Danielle,

como havia mencionado no comentário, acho que você poderia usar o setSelectedZoomItem e para não apagar o valor que já existe você poderia usar a mesma lógica que estava implementado no evento de processo que está anexo na pergunta, algo assim:


function setSelectedZoomItem(selectedItem) { 
   var selectedColleagueId = selectedItem["colleagueId"];
   var colleagueIds = $('#campo_hidden_de_usuarios').val();
   if (colleagueIds) {
      colleagueIds += ',';
   }
   colleagueIds += selectedColleagueId;
   $('#campo_hidden_de_usuarios').val(colleagueIds); 
}

Provável também que você irá precisar remover do campo hidden o colleagueId caso o usuário for removido do campo do zoom, podes tratar na função removedZoomItem, algo parecido com isso:


function removedZoomItem(removedItem) {
   var removedColleagueId = removedItem["colleagueId"];
   var colleagueIds = $('#campo_hidden_de_usuarios').val().split(',');
   colleagueIds.splice(colleagueIds.indexOf(removedColleagueId), 1);                            
   $('#campo_hidden_de_usuarios').val(colleagueIds.join(','));
}

Você pode preferir fazer isso no evento de processo buscando no dataset de colleagues partir do nome, mas se existir dois usuários com o mesmo nome mas com matriculas diferentes poderia dar problema.

Muito Obrigada Diogo! Deu certinho…