Cancelamento automático das requisições que sem encontram no estado Aguardando Aprovação por mais de X dias.

Alan Carvalho
Tera Contributor

Boa tarde comunidade.

Preciso implementar uma funcionalidade que realize o cancelamento automático das requisições que se encontram no estado Aguardando aprovação por mais de X dias (ainda vou definir a quantidade de dias para isso).

Ex: Sempre que uma requisição estver no estado aguardando aprovação a mais de 10 dias o sistema deve realizar o cancelamento de forma automática.

Para isso, gostaria de saber qual o melhor local (regra de negócio, job agendado, fluxo e etc) para realizar essa implementação e como devo fazer.

Agradeço desde já.

1 ACCEPTED SOLUTION

Vivi Brasil
Kilo Sage

Boa tarde Alan,

Há algumas formas possíveis (como você bem disse: job agendado, fluxo...). Mas para tudo que for implementação nova, a ServiceNow tem recomendado utilizar o Flow Designer (se fosse um Scheduled Job que já existisse e você precisasse alterar a regra nele, você poderia mante-lo e altera-lo também, sem problema algum).

Mas como é algo novo, eu sugeriria também já criar utilizando o Flow Designer.

Aqui há um vídeo bem interessante mostrando um caso de uso de fechamento automático de tasks. O propósito é diferente do seu, mas a idéia é a mesma (para você ter como base):

O Robert Fedoruk possui uma série de vídeos muito bons, sobre "GoWithTheFlow", para ajudar a identificar funcionalidades que podem ser desenvolvidas no Flow (que antes fazíamos via Scheduled Job por exemplo).

Obrigada!

View solution in original post

9 REPLIES 9

Vivi Brasil
Kilo Sage

Boa tarde Alan,

Há algumas formas possíveis (como você bem disse: job agendado, fluxo...). Mas para tudo que for implementação nova, a ServiceNow tem recomendado utilizar o Flow Designer (se fosse um Scheduled Job que já existisse e você precisasse alterar a regra nele, você poderia mante-lo e altera-lo também, sem problema algum).

Mas como é algo novo, eu sugeriria também já criar utilizando o Flow Designer.

Aqui há um vídeo bem interessante mostrando um caso de uso de fechamento automático de tasks. O propósito é diferente do seu, mas a idéia é a mesma (para você ter como base):

O Robert Fedoruk possui uma série de vídeos muito bons, sobre "GoWithTheFlow", para ajudar a identificar funcionalidades que podem ser desenvolvidas no Flow (que antes fazíamos via Scheduled Job por exemplo).

Obrigada!

Olá @Vivi Brasil,

Estou seguindo as suas orientações e utilizando o Flow Designer para essa necessidade, porém, tenho mais uma dúvida e gostaria de saber se pode me ajudar.
Iniciei o meu fluxo com um Look Up para pegar todas as aprovações pendentes por um período superior a 7 dias e rejeitá-las.

find_real_file.png
Na sequência, realizei um novo Look Up para localizar todas as RITMs atreladas a essas aprovações e inserir um único comentário adicional informando ao solicitante que o cancelamento ocorreu automaticamente por falta de aprovação em tempo hábil, e é aqui que me compliquei, pois o comentário é adicionado na mesma quantidade de aprovações rejeitadas pelo fluxo, ou seja, se 3 aprovações pendentes foram rejeitadas 3 comentários adicionais estão sendo inseridos.

find_real_file.png

find_real_file.png

Existe alguma forma de inserir apenas um comentário adicional nas RITMs?

Desde já muito obrigado.

Olá @Alan Carvalho , agradeço por você ter aceitado a sugestão proposta com o Flow Designer, e pelo feedback com a correct answer!

Eu comparei rapidamente o seu Flow, com o Flow apresentado pelo Chuck Tomasi neste vídeo:

A finalidade é parecida, só que no caso dele, em vez de cancelar o registro, ele envia uma notificação por email para lembrar o aprovador de aprovar tal change (ele até cria dois campos e usa um Scheduled Job para fazer algumas ações adicionais, no sentido de conseguir controlar quando foi o último lembrete que ele fez e quantos reminders ele já fez para cada registro).

Mas o Flow em si com o objetivo mais próximo ao seu, começa por volta do minuto 20 do vídeo, e o lookup que ele faz na tabela de aprovações, para depois chamar a lógica do For Each dentro de cada registro da change, parece muito similar ao seu. A diferença é que ele envia uma notificação para cada aprovador, ou seja, faz sentido ele percorrer todos os registros de aprovação pendentes na change e mandar uma notificação para cada aprovador.

Talvez no seu caso, como a ação de cancelamento e adição dos comentários é na Requisição (em cada requisição distinta, independente do número de aprovações pendentes), precisaria inverter, fazer o primeiro lookup na tabela da Requisição [sc_req_item], mas não tenho certeza... preciso fazer alguns testes para ver como se comportaria. Nesta semana eu não conseguirei testar isso, mas até o início da semana que vem, se ainda te ajudar em algo, eu atualizo com o que eu conseguir.

Obrigada, abraços!
Vivi Brasil

Olá @Vivi Brasil, agradeço mais uma vez pela atenção a esse caso.

Realizei primeiramente o lookup na tabela Aprovação [sysapproval_approver] pois a rejeição das aprovações pendentes resulta no cancelamento da RITM, e fica pendente apenas a inclusão de um comentário para que o solicitante fique ciente do que está acontecendo e quais providências tomar.

Realizar o primeiro lookup na tabela de Requisição [sc_req_item] não sei se será muito acertivo, uma vez que nem todos os tipos de requisições serão afetados por esse processo e em alguns casos, algumas delas não possuem aprovadores atrelados por falta de informações como grupos, IC afetado e etc.

De qualquer forma, se conseguir mais alguma alternativa eu agradeço.