01. DADOS GERAIS
Produto: |
TOTVS Varejo Franquias e Redes
|
---|
Linha de Produto: | PDV Sync |
---|
Segmento: | |
---|
Módulo: | Client Up |
---|
Função: | Reprocessar pré venda |
---|
País: | Brasil |
---|
Versão: | Versão única |
---|
Requisito/Story/Issue (informe o requisito relacionado) : | DVARINT1-9923 |
---|
02. SITUAÇÃO/REQUISITO
- Devemos implementar a rotina de reenvio de pré-venda quando ocorrer erro no envio da pré-venda do PDV para o Sync.
- Caso o registro da pré-venda estiver com status 98 (Pendente envio por falta de conexão com o Server) ou 99 ( Erro ao tentar integrar no Sync), devemos seguir a rotina de reenvio abaixo:
- Quantidade máxima de envio serão 30 tentativas:
- Os horário das tentativas são:
- Nesse momento não serão dado dinâmicos. Os horários estarão fixos no código.
- Nos casos que ocorrerem erro relacionado ao status 99, devemos enviar para o log centralizado os dados abaixo:
- ID do registro no PDV (pk tabela pre_venda)
- Número pré-venda (numero)
- Número PDV (numero_pdv)
- Quantidade de tentativas
- Data da ultima tentativa
- Erro
- Obviamente que não será possível enviar para o log centralizado o status 98, pois não há comunicação com a internet e/ou SyncServer.
- Para verificar se há conexão com a internet e/ou comunicação disponível com o PDVSync.Server (98), basta verificar se o endpoint abaixo retorna ok:
- Devemos criar os campos "data_ultimo_envio" e "quantidade_tentativa" que ainda não existem na tabela pre_venda do PDV, a fim de apoiar na solução.
- Será necessário incluir no migration do PDV.
- Devemos documentar a nova rotina de reprocessamento de pre_venda na documentação do PDVSync.
03. SOLUÇÃO
Parte 1 - PDVSync.Client.Api
- Foi criado o endpoint prevenda/reprocessar no PDVSync.Client.Api onde sua responsabilidade é alterar o status da pré venda para que o PDVSync.Client.Up encontre-as.
- As pré vendas com status de erro seguem os mesmo critérios da subida padrão de pré venda, ou seja, não podem estar em atendimento, contudo, algumas regras a mais são aplicadas para esse fluxo de reprocessamento, sendo essas regras
- Quantidade de tentativas deve ser menor que 30 tentativas
- O status da pré venda deve ser 98 (falha de internet ao enviar) ou 99 (Erro ao integrar)
- Ao atenderem as regras para serem reprocessadas, as pré vendas tem seus status alterado para 0 (disponibilizado para envio)
- Deve se atentar que este endpoint não faz o envio da pré venda para o server, ele somente altera o status da venda para disponibilizado, deixando para o PDVSync.Client.Up a responsabilidade de subir esta pré venda.
- No endpoint de GET de pré venda chamado pelo PDVSync.Client.Up também foi incluída a regra para atender a quantidade de tentativas de no máximo 30 tentativas.
Parte 2 - PDVSync.Client.UP
- Foi adicionado nas rotinas da pré venda as devidas verificações para que seja feito o reprocessamento em nos tempos estipulados.
- A verificação de vendas para reprocessar só irá ocorrer uma única vez no horário especificado.
- Quando chegar o momento de realizar a verificação das pré vendas a serem reprocessadas, o PDVSync.Client.Up irá realizar a chamada ao endpoint criado no PDVSync.Client.API para que as pré vendas sejam alteradas para disponibilizado e no próximo instante de busca de pré venda, caso houver pré vendas elas seram enviadas ao PDVSync.Core.Comercial
- Os horários são fixo e estão listados abaixo
- 9 horas de manhã
- Meio dia | 12 horas
- 3 horas da tarde | 15 horas
- 6 horas da tarde | 18 horas
- 8 horas da noite | 20 horas
- Foi adicionada a verificação de conexão com a internet
- Nesta rotina, a ordem de execução é enviar a pré venda e, caso ocorra erro nesse envio, verificamos a conexão e atribuímos o status
- 98 - caso tenha ocorrido o problema por conexão com o microsserviço Comercial.
- 99 - caso tenha ocorrido por outro tipo de erro durante o processo.
- Caso a pré venda suba corretamente o status 1 será atribuído a pré venda.
Documentação: Processo de subida de pré-vendas para o POSH Server