Í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
    1. Selecionar o grupo e deixar o botão "Enviar para Pool" desligado: Será consultado o Dataset "colleagueGroup" para retornar os colaboradores do grupo;
    2. 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.