Olá pessoal,
Hoje, tenho alguns usuários que estão assumindo a tarefa e não estão movimentando (enviando). Sei que temos esse recurso de movimentar a tarefa quando estiver vencida: BPM 002 - Como movimentar automaticamente uma atividade com o Fluxo Automático? - TOTVS Fluig - TDN porém, a tarefa ainda não está vencida, mas, está “presa” com a pessoa que não movimentou.
Teria como criar alguma funcionalidade em que se ele assumiu mas não movimentou em 1h por exemplo a tarefa seja devolvida para o grupo novamente?
Olá @iago.oliveira !
Realmente não é possível trabalhar com o fluxo automático neste caso? Você pode criar uma saída para uma atividade “dummy” e seguir com o fluxo de volta para sua atividade.
Ou…pensando já em algo mais complexo, manipular a solicitação via dataset agendado, mas me parece que vai ser mais trabalhoso dessa forma.
O que acha?
Regra de negócio interessante. O Fluig não tem isso por padrão. Poucas rotinas tiram a atividade de quem já está executando ela, porque não tem muito como saber se a pessoa só esqueceu de movimentar ou se a atividade demandou mais tempo do que o previsto.
Acho que o dataset agendado é a solução que eu iria também inicialmente. Mas tem a opção de tentar fazer via hAPI.setDueDate para definir um prazo de conclusão de 1 hora ao assumir e ai movimentar automaticamente. Eu não sei se daria pra movimentar pra mesma atividade.
Usar o setDueDate ao invés de uma data fixa vai evitar que a atividade fique em loop se ninguém assumir ela.
Então, nessa situação eu penso em 3 situações:
- Orientar os usuários a assumirem a atividade somente se vão dar continuidade a ela;
- Ter um gestor que faça esse monitoramento e então transfira a atividade;
- Ter um dataset jornalizado que verifique o processo, procurando na atividade em questão e fazendo a transferência automaticamente;
No caso do dataset jornalizado teria que fazer ele olhar o dataset processTask
, pesquisando pelo processTaskPK.processInstanceId
(que já pegou de outra forma), pra ver se o processTaskPK.colleagueId
é diferente do pool do grupo e aí fazer do tempo decorrido usando o assignDate
e aí transferir de volta ao grupo.
Nessa questão de transferir de volta ao grupo confesso que nunca tentei. Vi que tem na API REST (ao menos na versão antiga) e no SDK. Mas nunca testei usar.