Recuperar informações de tarefas adHoc

Alguém já precisou recuperar informações das tarefas adHoc geradas dentro de um processo? Aquelas que são criadas por script dentro de um evento de workflow. Por padrão somente o responsável pela tarefa pode acompanhá-las dentro da etapa, utilizando o painel que surge no canto direito superior. Mas preciso mostrar os dados das adHocs no formulário principal. Onde e como recupero os dados? Já tentei achar a tabela onde são gravadas, mas não encontrei nenhuma referência delas com o formulário principal.

Alguém tem uma forma de fazer isso? Preciso somente criar esse painel de status para entregar um projeto…

@Tiago,

Tenta utilizar essa API /bpm/adhoc/{process}/{sequence}

http://[seu_fluig]/api/resource_AdHocServiceRest.html#path__bpm_adhoc_-process-_-sequence-.html

Caso isso não te atenda, tente fazer o seguinte:

  • edite o formulário da lista de tarefas pelo Fluig e defina um nome de dataset;
  • dai consulte esse dataset, se eu não me engano o campo request é o número do processo principal

Consegui recuperar as informações via API, porém, não retorna o número da solicitação adHoc gerada. Será que está em outra?

1 curtida

Tiago, eu consegui recuperar o número da solicitação adHoc gerada através dos dataset’s “FLUIGADHOCPROCESS” e “processAttachment”. No dataset FLUIGADHOCPROCESS você recupera o campo “documentId”, filtrando o campo “request” e usa o valor do campo “documentId” como filtro para a coluna “documentId” do dataset “processAttachment”. O valor da coluna “processAttachmentPK.processInstanceId” é o numero da solicitação que você precisa. Não sei se esse é o melhor caminho, mas funciona.

Obrigado Carolina. Eu já consegui utilizar essa API sim. Pelo menos até ela parar de funcionar. Estou com um chamado aberto já, pois não está mais retornando os dados das adHocs.

1 curtida

Caros, como que faço para utilizar a API que o gabriel falou?

Levy, segue meu código de exemplo:

HTML:


<div class="row">
  <div class="col-md-12 form-group">
    <legend> Status de aprovações dos Owners </legend>                                
      <div class="col-md-12" id="legendatividades">
    <div id="statusAprovacoes">
      <!--Implementar div dinâmica -->
    </div>
      </div>
  </div>
</div>

Javascript:


function carregaStatusAdHoc(){
    try {
        metodo = "GET";
        //endereco = "https://integra.grupocurimbaba.com.br:8443/api/public/bpm/adhoc/" + numProcessoGlob + "/58";
        endereco = "https://integra.grupocurimbaba.com.br/api/public/bpm/adhoc/" + numProcessoGlob + "/58";
        $.ajax  ({ type: metodo,
            url: endereco, 
            dataType: 'json',
            async: false,
            //data: dados,
            //beforeSend: function (xhr){xhr.setRequestHeader('authorization',
            //make_base_auth(username, password));     },
            //timeout: 5000,
            success: function (data){
            retorno = data;
        },
        error: function (retorno){
            var err = retorno;
            modalErro("WebService retornou o(s) erro(s): " + retorno);// + retorno.status + " - " + retorno.statusText + " - " + retorno.responseText + " - " + retorno.responseJSON.errorCode + " - " + retorno.responseJSON.errorMessage);                            
        }
        });
        mydata = [];
        var that = this;
        var _this = this;
        var registros = retorno.adHocTasks;
        for ( var index in registros) {
            var item = registros[index];
            var status = '';
            if(item.taskState == '1'){status = 'Aprovado'}else if(item.taskState == '2'){status = 'Rejeitado'}else{status = 'Pendente'};
            var registro = {
                dueDate: item.dueDate,
                name: item.name,
                observation: item.observation,
                responsible: item.responsible,
                taskState: status
            };
        mydata.push(registro);
        }
        that.myTable = FLUIGC.datatable('#statusAprovacoes', {
            dataRequest: mydata,
            renderContent: [ 'name' , 'responsible' , 'dueDate' , 'observation',  'taskState'],
            header: [
                {'title': 'Módulo',
                    'size': 'col-md-4'
            },
                {'title': 'Responsável',
                    'size': 'col-md-2'
            },
                {'title': 'Prazo',
                    'size': 'col-md-1'
            },
                {'title': 'Observações',
                    'size': 'col-md-3'
            },
                {'title': 'Status',
                    'size': 'col-md-1'
            }                    
            ],
            search:{
                enabled: false
            },
            navButtons: {
                enabled: true
            },
            actions: {
                enabled: true,
                template: '.template_area_buttons',
                actionAreaStyle: 'col-md-9'
            },
            emptyMessage: '<div class="text-center">Nenhuma informação para ser exibida.</div>',
            tableStyle: 'table-striped',
            draggable: {
             enabled: true,
             onDrag: function(dragInfo) {
                 // Do something
                 return false; // If it returns false, will cancel the draggable
             }
            },
            scroll: {
            target: '#target',
            enabled: true,
            onScroll: function() {
                // DO SOMETHING
            }
        }             
        }, function(err, data) {
            // DO SOMETHING (error or success)
        });
        } catch (error) {
        modalErro("Erro na função carregaStatus: " + error);            
    }
}