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:
- Integrações com perspectivas SeniorTools;
- Invocação de serviços do Middleware Senior;
- Invocação de serviços genéricos;
- Automatização de tarefas de script;
- Automatização de tomadas de decisões;
- Utilização da expiração;
- Configuração de hierarquia no processo;
- Entre outros por menores.
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.

English
Español


