Priorização de Processos no S-Works

Priorização de Processos no S-Works

A priorização foi criada para permitir que determinados processos sejam executados antes dos demais.
Ou seja, para processos que precisam ser executados com prioridade, é possível realizar uma configuração para que eles sejam executados primeiro.
A ordenação na tela de Monitorar Validação é feita internamente na query que efetua uma busca e ordena usando as colunas  "FATOR_ORDENACAO_PRIORIDADE_ATM" na respectiva ordem na tabela "ATIVIDADEMANUAL_ATM".
Onde são ordenadas pelo o valor da prioridade e o fator de ordenação de prioridade. Para parametrizar alguma ordenação, é preciso alterar as prioridades na tela de prioridade.

Para que alguns processos sejam aprovados primeiro, ou seja, para que um processo especifico tenha mais prioridade sobre o outro.

Essa tela muda a ordem de execução dos processos, sempre verifique a real necessidade antes de efetuar uma alteração.

Como é feita a configuração?

Deve ser realizada uma parametrização que permita classificar um determinado tipo de processo para que ele seja identificado quando chegar na fila de execução. 


Exemplo: Priorizar a execução de processos cujo valor de saldo devedor seja maior ou igual a R$100.000,00. Se o processo vai trazer como dado de entrada esta informação:

1. Clique no Menu Administração> Priorização de  processos;
2. Preencha os campos Nome Prioridade, WorkFlow, Ordenar Por e o Tipo de ordenação.
3. Selecione um campo, uma condição e o Valor e clique em salvar.





Neste exemplo, sempre que chegar um processo com o dado de entrada 'ValorSaldoDevedor' maior ou igual a R$100.000,00 ele será priorizado na fila de execução.

O dado de entrada só será exibido no campo "Ordenar Por" se for do tipo Numérico ou DateTime.
Não é possível ordenar pelo formato Alfanumérico


Como funciona a fila de priorização?

Após realizada a configuração e a ordenação das regras, o S-Works atribui um valor para cada processo que chega na fila, conforme a ordem de priorização. Esse valor determinará a ordem de execução dos processos. 


Exemplo: o processo que se encaixar no primeiro critério de priorização configurado na lista receberá um valor, por exemplo zero. O processo que se encaixar no segundo critério de priorização receberá um outro valor, por exemplo, 1 (um). Quando diferentes processos chegarem na fila de execução serão automaticamente organizados segundo esse valor que receberam e manterão essa ordem de execução.


No exemplo, abaixo, o workflow mais prioritário é o "Refin W", então, quando chegar na fila de execução um processo desse workflow, com o dado de entrada de saldo devedor maior ou igual a R$100.000,00 (que foi o critério configurado), ele será marcado com a prioridade 0 (zero) e será executado antes dos demais. 


 Quando chegar um processo do Workflow 'SLA 10' ele receberá um valor de prioridade menor (menos prioritário) que o processo do Workflow "Refin W'. 






 As ordens de prioridade obedecem à lista acima, de cima para baixo: do mais prioritário para o menos prioritário.

 É possível reordenar as prioridades trocando as regras de lugar utilizando o comando: (mover para cima ou para baixo na ordenação).


Vários processos chegando ao mesmo tempo no S-Works, como fica a priorização?

Vários processos de diversos Workflows podem chegar ao mesmo tempo na fila de execução. A medida que chegam sempre receberão um valor de prioridade e esse valor será o mesmo de acordo com a ordem de prioridade configurada. Ou seja, no caso acima, enquanto houver processos do Workflow "Refin W" para ser executado (que atendam ao critério configurado), será processado na frente dos demais.


Aquela prioridade irá acompanhar o processo do início ao fim, a menos que o dado de entrada utilizado para configurar a prioridade mude durante o processo. Nesse caso, o processo é repriorizado (recebe outra priorização na fila). 


Exemplo: foi priorizado o processo cujo saldo devedor do cliente é de R$100.000,00, porém no meio do processo esse dado foi alterado para R$ 80.000,00. Esse processo, antes priorizado com maior prioridade é reclassificado e recebe uma nova priorização.


 A priorização também afeta as atividades manuais. Aquelas com maior prioridade são disponibilizadas primeiro para o analista executar.


É recomendado que o workflow prioritário não seja aquele com maior volume. Caso um workflow/processo com muita volumetria seja priorizado, pode ocorrer que os demais processos, pouco prioritários ou com prioridade padrão fiquem muito tempo na fila, aguardando execução. Isso também pode ser percebido na fila de processos com atividades manuais pendentes de execução, que poderá aumentar.

A priorização de tarefas segue a mesma regra da priorização de processos: o S-Works atribui um valor para cada processo/tarefa que chega na fila, conforme a ordem de priorização. Este valor determinará a ordem de execução dos processos/tarefas. Ou seja, se existe uma determinada tarefa manual na fila e é aplicada uma regra de priorização, esta também será impactada.


Quais são os impactos ao aplicar uma priorização nos processos?

Deve-se sempre pensar duas vezes antes de aplicar uma priorização, principalmente quando a fila de processos está grande. O ideal é sempre pensar na melhor hora para aplicar as priorizações sem prejudicar a performance geral do sistema.


Pois ao clicar no botão 'Aplicar todas as prioridades' o sistema criará uma solicitação de alteração de prioridade para cada processo não finalizado que está no S-Works.




Essa solicitação de alteração tem uma prioridade mais alta sobre as outras solicitações. O que causa um aumento na fila de solicitações e a sensação de um gargalo muito grande, principalmente quando a fila já estava grande.

Exemplo:
Imagine uma fila de solicitações em um dia normal de operação.




Ao aplicar a priorização, para cada processo pendente será criado uma solicitação de alteração de prioridade.





Fazendo com que as solicitações dos processos demorem mais para serem realizadas.




Qual a utilidade do campo "Prioridade padrão" nas configurações do workflow?

A única forma de priorização é o mecanismo de prioridade pela tela de Priorização de processos.
Portanto, prioridade padrão não tem nenhum efeito em sua configuração. 

A partir da versão 2.0 foi retirada essa opção das configurações para não causar confusão. Veja imagem abaixo:





É possível configurar uma prioridade de ordem mais baixa que a Prioridade padrão?


A prioridade padrão sempre é a mais baixa da tela de priorização:




Ao existirem duas prioridades para o mesmo workflow, qual prioridade será aplicada?

Ao existir duas priorizações abrangendo o mesmo workflow, é considerado a de maior ordem.

Tenho um workflow X e desejo que apenas ele tenha uma prioridade menor que todos os outros, como não é possível definir uma prioridade mais baixa que a padrão, de que maneira posso atender esse objetivo?

Uma maneira de atender a esse objetivo é com a criação de duas prioridades, como pode ser visto a seguir:



O objetivo dessas duas priorizações é ter uma que atende a todos os workflows, chamada de 'Prioridade Geral' e outra colocada abaixo dela com o workflow que deseja ter menor prioridade, aqui chamada de 'Baixa'.

Lembrando que, como informado no item anterior, apesar da 'Prioridade Geral' e a 'Prioridade Padrão' atenderem aos mesmos workflows (nesse caso, TODOS), ao existir duas priorizações abrangendo o mesmo workflow, é considerado a de maior ordem.

Ao aplicar a priorização, quais processos serão afetados?


Quando a priorização é aplicada, é criado uma solicitação_orquestrador para cada processo sem data de finalização. Mas será criado somente caso não exista uma solicitação pendente do mesmo tipo.

Ou seja, caso não tenha outra solicitação de priorização pendente, a aplicação acarretará na repriorização de todos os processos não finalizados.


A priorização não afeta os processos já enfileirados pelo MSMQ, ou seja, se na fila de processamento já existam 10 processos a serem processados, estes permanecerão na fila. Somente os novos processos a entrarem na fila terão influência da priorização.

A priorização afeta a distribuição de atividades manuais?

A priorização afeta a distribuição no modo banco de dados, como com o dispatcher.
Sempre que uma atividade manual com prioridade superior for gerada ela será disponibilizada antes das demais.



    • Related Articles

    • Critério de ordenação da tela Monitorar Validação.

      A ordenação na tela de Monitorar Validação é feita internamente na query que efetua uma busca e ordena usando as colunas  "FATOR_ORDENACAO_PRIORIDADE_ATM" na respectiva ordem na tabela "ATIVIDADEMANUAL_ATM". Onde são ordenadas pelo o valor da ...
    • Priorização de Processos

      Priorização de Processos Caminho: Administração/Priorização de Processos Tela na qual pode se determinar a prioridade de execução de processos através de grupos de condições e aplicá-las a um ou mais workflows.
    • Seed priorização default ao inicializar o sistema

      Melhoria implantada a partir da versão 2.6 do S-Works Seed priorização default ao inicializar o sistema Para correto funcionamento do S-Works é obrigatório existir ao menos a prioridade Padrão. Ao inicializar o sistema a priorização Padrão é criada ...
    • Melhoria perfil de acesso S-Works

      Melhoria implantada a partir da versão 2.5 do S-Works Introdução Com a melhoria implantada na versão 2.3 Criação de Perfil Personalizado, temos na versão 2.5 uma melhoria realizada no Perfil Personalizado. Foram realizadas mudanças na estrutura da ...
    • Monitorar Processos

      A tela monitorar processos permite a consulta de todos os processos integrados ao S-Works, ou seja, todos os processos existentes no sistema.  Features da tela Essa tela é acessada pelo caminho Processo > Monitorar processos. Empresa: neste ...