Skip to end of metadata
Go to start of metadata

Í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.


    formulario.html
    <!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>
    
    
    formulario.js
    $(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.