Voltar para o blog
Dados & BI3 min de leitura

Solicitação excluída que continua no relatório Fluig

Excluiu a solicitação e ela segue contando no painel? No Fluig, a ficha do formulário pode continuar ativa. Veja como filtrar sem esconder dados por engano.

O painel mostra 90 registros, o responsável conta 88 solicitações, e ninguém entende a diferença. Em um caso que analisamos, a resposta foi simples e pouco óbvia: duas solicitações tinham sido excluídas, mas as fichas continuavam lá.

O que acontece ao excluir

Ao excluir uma solicitação, o Fluig remove o registro de PROCES_WORKFLOW. Não é uma exclusão lógica nem uma mudança de status: a linha some.

A ficha do formulário, porém, continua ativa. E a ficha não tem nenhum campo dizendo que a solicitação foi excluída. Por isso, todo dataset ou painel que lê o dataset do formulário segue contando esse registro.

O cancelamento é diferente. Uma solicitação cancelada continua existindo em PROCES_WORKFLOW, com outro status.

Como confirmar

Pegue um número suspeito e procure no motor de workflow:

SELECT NUM_PROCES, STATUS
FROM PROCES_WORKFLOW WITH (NOLOCK)
WHERE NUM_PROCES IN (123456, 123457);

Se a ficha traz o número, mas a consulta não devolve linha, a solicitação foi excluída.

Como filtrar no relatório

O caminho é perguntar ao motor de workflow quais solicitações existem e descartar as fichas fora dessa lista. Uma consulta resolve:

SELECT NUM_PROCES, STATUS
FROM PROCES_WORKFLOW WITH (NOLOCK)
WHERE COD_DEF_PROCES = 'SEU_PROCESSO';

Para isso, a ficha precisa guardar o número da solicitação. Um jeito comum é gravar esse número em um campo com hAPI.setCardValue no afterProcessCreate.

Em um dataset:

function solicitacoesVivas(conexao, processo) {
    var vivas = new java.util.HashSet();
    var sql = "SELECT NUM_PROCES FROM PROCES_WORKFLOW WHERE COD_DEF_PROCES = ?";
    var stmt = conexao.prepareStatement(sql);
    stmt.setString(1, processo);
    var rs = stmt.executeQuery();

    while (rs.next()) {
        vivas.add(String(rs.getString("NUM_PROCES")));
    }

    rs.close();
    stmt.close();
    return vivas;
}

Três regras que evitam um problema pior

Falhe aberto. Se a consulta falhar ou voltar vazia, desligue o filtro e registre um aviso no log. Filtrar contra uma lista vazia esconde o painel inteiro, e isso é pior do que mostrar dois registros a mais.

Mantenha fichas sem número. Se o número é gravado por um evento que pode falhar, uma ficha sem número pode ser legítima. Solicitação excluída sempre tem número, então descarte apenas fichas com número fora da lista.

Não filtre por empresa à toa. Em nosso ambiente, NUM_PROCES era único, e filtrar pela empresa errada devolvia uma lista vazia. Com a regra de falhar aberto, isso desligava a correção em silêncio.

Quando a exclusão é um problema de processo

Excluir solicitação apaga o registro de quem pediu, aprovou e executou. Para processos críticos, isso enfraquece a trilha de auditoria.

Vale perguntar por que as pessoas estão excluindo:

  • Foi aberta por engano? Cancelar mantém o histórico.
  • Foi teste em produção? Crie um ambiente de homologação de verdade.
  • Foi duplicidade? O problema está na entrada. Veja como auditar duplicados e separar o que pode ser descartado do que já gerou pagamento.

Restrinja a permissão de excluir e combine uma regra por processo. Solicitação finalizada, em especial, não deveria sumir sem análise.

Quando contar da ficha e quando contar do workflow

Uma regra prática para painéis:

  • Quantidade, status e tempo: use as tabelas de workflow, que refletem o que existe. É o que fazemos ao medir SLA no Fluig.
  • Dados de negócio: use a ficha, sempre cruzada com o workflow.

Se o painel usa as duas fontes, esse cruzamento é obrigatório.

Perguntas frequentes

Excluir uma solicitação apaga o formulário?

Em nossas medições, não. A ficha continua ativa e aparece no dataset do formulário.

Qual a diferença entre cancelar e excluir?

A solicitação cancelada continua no sistema com outro status e mantém o histórico. A excluída deixa de existir no motor de workflow.

Como descobrir fichas órfãs?

Compare os números de solicitação gravados nas fichas com PROCES_WORKFLOW. As fichas com número sem correspondência são órfãs.

Relatórios que não batem corroem a confiança nos dados. A MyQube constrói painéis conectados ao Fluig e ao Protheus com essas regras tratadas. Vamos conversar.

Sua operação ainda depende de planilhas e retrabalho?

Agende uma conversa gratuita e receba um diagnóstico inicial dos seus gargalos operacionais.

Falar com a MyQube

Ou conheça nosso serviço de Dashboards Fluig e Protheus