Finalizando

 

Antes de finalizarmos o tutorial, iremos abordar mais um ponto que é de grande relevância para a definição de processos, o tempo para realização de tarefas. Pergunto, e se o usuário aprovador não responder a solicitação em determinado tempo?

Esse tópico será feito após a publicação e execução para reforçarmos como é feita a publicação e execução de um processo que já está em execução e também para apresentar um novo recurso.

 

Tratando expiração da aprovação do pedido

No nosso caso, nós queremos garantir que a tarefa de “Aprovar solicitação” seja tratada dentro de um determinado tempo, para isso então, adicionaremos uma expiração para nossa tarefa. Uma expiração indica que a tarefa possui um tempo limite para o seu tratamento e caso esse tempo exceda, uma ação pode ser definida no processo. Para mais detalhes sobre a expiração, consulte a documentação.

Para adicionar a expiração, nós iremos adiciona-la através de um Evento de borda de expiração. Para isso, clique no ícone referente à expiração que aparece na barra de contexto ao lado do elemento.

Após isso, temos um novo item para definirmos. O que fazer depois de expirar? Para o tutorial, nossa ação será de cancelar a solicitação, mas antes notificar o usuário da falha.

Poderíamos simplesmente criar uma sequência que leve até a tarefa para notificação de falha, porém essa tarefa precisa ter a variável de processo “resultado” com um valor definido para enviar a notificação via e-mail com uma mensagem de erro. Portanto, antes de criarmos a sequência até a notificação da falha, criaremos a sequência até uma tarefa de script - conforme figura abaixo. Para criar a sequência a partir da expiração, utilize o elemento Fluxo da paleta de componentes.

 

a) Definição da tarefa script

O nome da nossa nova tarefa será “Definir causa do cancelamento”, ela será do tipo Tarefa de Script e conterá o seguinte script.

var vars = context.getVars();

 

var solicitante = vars.getLong("solicitante");

var aprovador = context.getSecurity().getSuperiorWS(solicitante);

 

// obtém o usuário aprovador

var nomeAprovador = context.getSecurity().getName(aprovador);

 

// define a variável do contexto resultado com a causa do erro

vars.setString('resultado', 'Usuário ' + nomeAprovador + ' não respondeu a solicitação. Pedido será cancelado.');

O script acima é responsável por definir a variável “resultado” dizendo que o usuário aprovador não respondeu a solicitação.

 

b) Definindo tempo de expiração

Falta definirmos em quanto tempo que a tarefa expirará. Para o nosso cenário, colocaremos que a tarefa irá expirar depois de 3 minutos para podermos testar este recurso na prática de forma mais breve. Esta configuração é feita na aba Pendência das Propriedades da tarefa.

Nota

A configuração do tempo de expiração demonstrada acima:

  • pode também ser definida através de valores dinâmicos, cálculos a partir do script de beforeExecute e atribuído através de funções do Workflow.
  • deve ser realizada na tarefa Aprovar solicitação.

 

c) Publicação do processo

Com o processo alterado em mãos, publicaremos da mesma forma que antes. As diferenças serão as seguintes:

  • Não será solicitado o ambiente em que será publicado, pois essa informação já foi armazenada e;
  • Aparecerá uma nova modal perguntando se deseja mesmo sobrescrever as informações do servidor com o processo local. Selecionaremos que sim para essa tela.

O processo sempre é publicado sobrescrevendo a versão antiga.

 

d) Executando o novo processo

Para testar o novo processo, faça a autenticação novamente com o usuário solicitante e inicie um novo processo. Após isso, o usuário aprovador irá receber uma tarefa, mas, nesse momento essa tarefa não será tratada. Nós queremos vê-la expirando, então espere o tempo da expiração definido. Ao final do tempo, será enviado o e-mail abaixo e o processo se encerrará.

Pronto! Acabamos nosso processo!

 

Conclusão

Como foi visto nesse tutorial, nós aprendemos desde a parte de modelar até a parte de publicar um processo, passando por automatização e execução do processo. Vimos também como realizar:

Esse é um tutorial que apresenta alguns recursos e ensina o básico para sair modelando e automatizando seu primeiro processo – processo esse, de baixa complexidade. Para conhecer mais sobre o Workflow e todos os seus recursos, consulte o Manual do Usuário do Workflow no Portal de Documentação.


 Retornar

Este artigo ajudou você?