[SOLAR] Estudo para avaliar a necessidade e complexidade de implementação no Govdoc de webhook para a assinatura
Objetivo
Avaliar possíveis opções para a implementação atualização em tempo real de detalhes do processo do SOLAR após assinatura de um documento no sistema GovDoc.
Justificativa
Quando um fiscal criar um parecer no processo o mesmo é redirecionado para o sistema GovDoc para preenchimento do documento e posteriormente a assinatura. Ao voltar para a tela de detalhes do processo dentro do SOLAR não é evidente para o usuário que a página precisa ser recarregada, para habilitar as ações que direcionam para as próximas etapas do processo.
Sendo assim existe a necessidade de um mecanismo que identifique que o documento já foi assinado e que recarregue a página de detalhes do processo.
Resultado esperado
Descobrir a melhor forma de implementar uma função que atualize a página de detalhes do processo após a assinatura do documento no GovDoc.
Resultados da pesquisa
ApósEm discussãoconversa com o time e pesquisaschegamos a respeitoconclusão dasque possíveisexistem duas maneiras de fazer essa implantação, sendo elas:
1º Alternativa - Integração por Webhooks: Criar um serviço do tipo webhook na plataforma GovDoc, onde ao ser criado um novo documento através de integração de API seria fornecido uma API de retorno, a qual o GovDoc deveria fazer uma chamada após assinatura do documento.
Para essa alternativa seria necessário as seguintes alterações:
- Alterações
entrenoossistemasistemas,GovDoc:foi- Alterar o endpoint de criação de documentos para receber o endereço da API de retorno;
- Criar uma tabela de banco de dados para armazenar as Urls de Apis dos clientes;
- Criar uma tabela de banco de dados para armazenar qual documentos está atrelado com cada API;
- Alterar a rotina de alteração de status de um
consensodocumento, para sempre que houver a alteração no status de um documento, realizar o envio dos detalhes para a API de retorno;
chegado - Alterações no Sistema SOLAR:
- Criar uma API e endpoint que receberá o retorno com alteração de status do documento;
- Ao requisitar um novo documento ao GovDoc, enviar o endereço da API e endpoint que será aguardado o retorno de alteração de status do documento;
- Implantar um sistema de Websockets para, ao receber o retorno do GovDoc, enviar uma notificação do back-end do SOLAR para o front-end. Considerando que a
melhornotificaçãoabordagemdeve ser enviada apenas para os clientes que estejam a tela aberta nos detalhes do processo, sugiro usarmos a ferramenta SignalR para essa implantação; - Alterar o front-end para receber eventos do websocket (SignalR);
- Adicionar ao front-end uma validação do evento recebido pelo websocket, quando for do tipo documento assinado e estiver na tela de detalhes, exibir um modal de atualização do processo;
- Criar uma modal no front-end para exibir para o
problemausuárioseriaa mudança de status do documento dando as opções de recarregar a página de detalhes ou manter como está, para que caso o usuário esteja fazendo alguma análise não atrapalhe o andamento da atividade.
2º Alternativa - Integração por Pooling: Aterar o front-end do SOLAR para criar um pooling na tela de detalhes do processo enquanto o processo estiver com status "Redigindo" fazer uma requisição em background para GovDoc e ao receber a resposta que o documento foi assinado pelo usuário exibir uma modal dando a opção de recarregar a página ou manter como está.
Valor Agregado
A automação no retorno da informação pelo GovDoc simplifica a usabilidade do sistema e torna mais fluido o processo e a experiência do cliente na plataforma.
Conclusão
Concluímos que a implantação de tal funcionalidade tem um nível moderado de complexidade e que o esforço pode trazer um retorno atraente para nosso cliente. Para criar essa funcionalidadealternativa éseria necessário realizar as seguintes tarefas:alterações:
- Alterações no Sistema SOLAR:
- Alterar o Front-end, tela de detalhes do processo, criando um looping de requisições a cada 1 minuto, quando o status do documento do parecer for "Redigindo", para solicitar o status atual ao back-end do SOLAR.
- Criar um endpoint no Back-end do SOLAR que recebe o código do documento, verifica o status no GovDoc e retorna para o Front-end;
- Criar uma modal no Front-end que após receber a mudança de status do documento é exibida para o usuário dando as opções de recarregar a página de detalhes ou manter como está, para que caso o usuário esteja fazendo alguma análise não atrapalhe o andamento da atividade.
Valor Agregado
Acreditamos que a integração entre os sistemas para retorno da informação de status de documentos pelo GovDoc é importante pois simplifica a usabilidade do sistema e torna mais fluido o processo e a experiência do cliente na plataforma.
Conclusão
Concluímos que a ambas as alternativas estudadas e apresentadas entregam um resultado satisfatório a nível de usabilidade para o cliente, entretanto podemos destacar pontos positivos e negativos a respeito de cada uma:
- 1º alternativa - Integração por Webhooks:
- Pontos Positivos:
- Só existe a comunicação entre as plataformas quando ocorre a alteração de estado do objeto, evitando consultas e requisições desnecessárias;
- Pontos Negativos:
- Esforço de desenvolvimento alto pois tem um nível alto de complexidade;
- Envolve alterações tanto nos sistemas GovDoc quando no sistema SOLAR;
- Necessidade de criação de estrutura de tabelas em base de dados e ferramentas de controle de estado.
- Pontos Positivos:
- 2º alternativa - Integração por Pooling
- Pontos Positivos:
- Oferece um caminho mais simples para a implantação;
- Esforço menor de desenvolvimento pois necessita apenas alterar apenas o projeto SOLAR;
- Pontos Negativos:
- Será feita uma maior quantidade de requisições para verificação de status de documento ao GovDoc, pois cada front-end que estiver aberto com um documento em estado "Redigindo" enviará uma requisição de tempos em tempo;
- Consequentemente maior consumo computacional;
- Pontos Positivos:
Time de desenvolvimento: Turing |
Anderson Anschau |
João Vitor Paulino Nobre |
Milton Daniel Yama |
Paulo Indre Barbosa Ferreira Santos |