Árvore de páginas

01. DADOS GERAIS

Produto:

TOTVS Varejo Franquias e Redes

Linha de Produto:PDV Sync
Segmento:

Varejo

Módulo:

PDVSync Controle - RepositoryToService

Função:
País:Brasil
Ticket:
Requisito/Story/Issue (informe o requisito relacionado) :

DVARINT1-14221

Versão:

V3


02. SITUAÇÃO/REQUISITO

  • Permitir que o worker de RTS realize a tomada de decisão automática entre direcionar o worker de evento em realizar um POST (inclusão) ou um PUT (atualização) para o interessado, conforme o conteúdo do ConteudoPronto.

03. SOLUÇÃO

  • Criação do BackgroundService ManagementWorkflowDataBackgroundService que é estimulado pela fila dev-workflow-concluido após o termino do Workflow e realiza as seguintes operações:
    • Envia o dado processado pelo Workflow do banco do MS Fila para o MS responsável pelo dado;
    • Atualiza o Status desse dado no banco do MS Fila;
    • Cria um registro na tabela ControleEvento para que o Worker de Evento envie o dado para o serviço de destino;
    • Notificação o Worker Evento através do PubSub, publicando uma mensagem no tópico: dev-evento-workflow-concluido.
  • Ajustes no Worker de Evento para receber o Id do dado salvo na tabela ControleEvento;
  • Inclusão do tratamento de dead-letter no BackgroundService ManagementWorkflowDataBackgroundService
    • As mensagens são redirecionadas para o tópico: dev-workflow-concluido-dl.

O BackgroundService ManagementWorkflowDataBackgroundService é executado quando uma mensagem com o Id do dado no banco do MS Fila é publicada.

Com relação a criação do Evento e consequentemente ao método HTTP utilizado na requisição para o serviço de destino, tal decisão se da com a leitura dos dados armazenados no campo Metadata no banco do MS Fila.

O campo está preparado para ler duas propriedades:

  • RespostaIntegradorVoTerceiro - Armazena o retorno da API de terceiros do VO (ex: https://integrador.varejonline.com.br/apps/api/terceiros/1?token=valor-token);
    • Lê a propriedade: mensagem, se a mesma tiver o valor "Nenhum registro encontrado", usa o método POST, caso contrário, usado o PUT.  
  • RespostaIntegradorVoProduto - Armazena o retorno da API de produtos do VO (ex: https://integrador.varejonline.com.br/apps/api/produtos/1?token=valor-token);
    • Lê a propriedade: id, se a mesma tiver o valor "0", usa o método POST, caso contrário, usado o PUT.  

Obs.: Vale ressaltar que esses valores podem ser alterados pelo VO, sendo necessário acompanhar as mudanças realizadas pelo VO e atualizar a aplicação para manter o comportamento da aplicação.