Índice
Plataforma
Produto: fluig
Ocorrência
Em alguns casos, se tem a necessidade de definir os responsáveis de uma atividade de forma personalizada, considerando os dados do formulário. A partir da Atualização 1.5.12, disponibilizamos o uso da hAPI no Mecanismo de atribuição personalizado, entretando, é indicada apenas para solicitações já iniciadas, uma vez que a hAPI depende dos dados do formulário gravado na solicitação.
Solução
Quando é necessário considerar os dados do formulário no momento que está iniciando uma solicitação, aconselhamos customizar já no script do formulário, como é exemplificado abaixo.
Definindo os responsáveis conforme dados do formulário
Como exemplo, estaremos utilizando os Grupos "group1" e "group2" que devem ser alterados conforme grupo utilizado na plataforma.
Criando o html, onde o usuário poderá escolher entre pegar os usuários de um grupo, ou, simplesmente enviar para o Pool de um Grupo.
<!DOCTYPE html> <html> <head> <link rel="stylesheet" type="text/css" href="/portal/resources/style-guide/css/fluig-style-guide.min.css"> <script src="/portal/resources/js/jquery/jquery.js"></script> <script src="/portal/resources/js/jquery/jquery-ui.min.js"></script> <script src="/portal/resources/js/mustache/mustache-min.js"></script> <script src="/portal/resources/style-guide/js/fluig-style-guide.min.js"></script> <script src="../vcXMLRPC.js"></script> <script src="formulario.js"></script> </head> <body> <div class="fluig-style-guide"> <form role="form"> <input type="text" class="form-control fs-display-none" name="group_selected" id="group_selected"> <div class="panel panel-primary"> <div class="panel-heading"> <h3 class="panel-title">Selecione o Grupo</h3> </div> <div class="panel-body"> <div class="row"> <div class="col-md-6"> <div class="radio"> <label> <input type="radio" name="list_group" value="group1" checked> Grupo 1 </label> </div> <div class="radio"> <label> <input type="radio" name="list_group" value="group2"> Grupo 2 </label> </div> </div> <div class="col-md-6"> <div class="checkbox"> <label> <input type="checkbox" id="isPool" name="isPool"> Enviar para Pool </label> </div> </div> </div> </div> </div> </form> </div> </body> </html>
$(function() { changeGroup(false); FLUIGC.switcher.init('#isPool'); FLUIGC.switcher.onChange('#isPool', function(event, state) { changeGroup(state); }); $(".radio").change(function() { var isPool = FLUIGC.switcher.getState('#isPool'); changeGroup(isPool); }); function changeGroup(isPool) { var group = $('input[name=list_group]:checked').val(); if (isPool) { $("#group_selected").val("Pool:Group:" + group); } else { setColleaguesByGroup(group); } } function setColleaguesByGroup(group) { var filter = new Object(); var colleagueIds = ""; filter["colleagueGroupPK.groupId"] = group; var colleagues = DatasetFactory.getDatasetValues("colleagueGroup", filter); for (colleague in colleagues) { if (colleagueIds) colleagueIds += ","; colleagueIds += colleagues[colleague]["colleagueGroupPK.colleagueId"]; } $("#group_selected").val(colleagueIds); } });
Após publicar o arquivo HTML e JS como formulário fluig, o resultado será esse.
Figura 1 - Visualizando o formulário.
Criar e vincular o Processo com o Formulário, publicado anteriormente.
Definir a atividade para utilizar o Mecanismo "Atribuição por Campo de Formulário" e selecionar o campo "group_selected", campo hidden presente no HTML, que terá o valor dos responsáveis pela atrividade.
Figura 2 - Configurando Mecanismo de Atribuição.
- Feito os passos, a solicitação estará preparada para difinir os responsáveis conforme dados selecionados no formulário, neste exemplo, temos dois casos
- Selecionar o grupo e deixar o botão "Enviar para Pool" desligado: Será consultado o Dataset "colleagueGroup" para retornar os colaboradores do grupo;
- Selecionar o grupo e deixar o botão "Enviar para Pool" ligado: Não será consultado nenhum Dataset, o campo hidden ficará com o valor "Pool:Group:group_code", com isso, a atividade estará para em Pool, esperando que algum colaborador do grupo assuma a atividade.
Figura 2 - Configurando Mecanismo de Atribuição.