MD Software

Manutenção e Correção da Fila

Se a fila de integração estiver travada, use os procedimentos abaixo para sincronizar ou forçar o reprocessamento de itens.

Atenção

Os comandos desta seção modificam dados diretamente no banco. Sempre faça backup antes de executar e teste em ambiente de homologação.


Identificar o Maior TRANS_ID Disponível

Identifique o maior TRANS_ID disponível nas tabelas relevantes (PRODUTOS, VITRINE_PRODUTOS, VITRINE_PRODUTOS_SKU) para encontrar o ponto mais recente de atualização do sistema.

SELECT MAX(x.trans_id) AS maior_trans_id
FROM (
    SELECT MAX(trans_id) AS trans_id FROM produtos
    UNION ALL
    SELECT MAX(trans_id) AS trans_id FROM vitrine_produtos WHERE vitrine = 10401
    UNION ALL
    SELECT MAX(trans_id) AS trans_id FROM vitrine_produtos_sku WHERE vitrine = 10401
) AS x;

Importante

Anote o valor retornado (maior_trans_id). Você precisará dele para o próximo passo.


Atualizar Controle da Vitrine (Sincronização)

Este comando atualiza o TRANS_ID_PRODUTO na tabela de controle da vitrine.

Atenção

Este comando IGNORA todos os itens que foram modificados antes do TRANS_ID inserido. Use apenas quando quiser "pular" a fila atual e sincronizar a partir do ponto mais recente.

UPDATE VITRINE
SET TRANS_ID_PRODUTO = [MAIOR_TRANS_ID_ENCONTRADO]
WHERE VITRINE = 10401;

Quando Usar

SituaçãoRecomendação
Fila muito grande e precisa zerar✅ Usar este comando
Fila travada há muito tempo✅ Usar este comando
Precisa reprocessar itens específicos❌ Use o método de reenvio individual
Sincronização normal do dia-a-dia❌ Não é necessário

Forçar Reenvio de um Produto Específico

Altere o TRANS_ID de um SKU específico para um valor antigo (inferior ao TRANS_ID_PRODUTO atual) para forçar o reprocessamento pelo próximo ciclo de integração.

UPDATE vitrine_produtos_sku
SET TRANS_ID = [TRANS_ID_ANTERIOR]  -- Ex: 839429290
WHERE VITRINE_PRODUTO_SKU = '10591BK9730334';  -- Substituir pelo SKU desejado

Como Funciona

  1. O sistema verifica produtos com TRANS_ID > TRANS_ID_PRODUTO da vitrine
  2. Ao definir um TRANS_ID menor, o produto volta para a fila de processamento
  3. No próximo ciclo, o produto será reenviado para a plataforma

Dica

Para encontrar o TRANS_ID_ANTERIOR, você pode usar o valor de outro produto que já foi sincronizado ou simplesmente usar um valor significativamente menor que o atual.


Limpar Produtos Bloqueados

Remove o bloqueio de produtos que podem estar travando a fila (BLOQUEADO = 'T'), permitindo que o sistema tente processá-los novamente.

UPDATE VITRINE_PRODUTOS_SKU
SET TRANS_ID = NULL
WHERE BLOQUEADO = 'T';

Quando Usar

  • Quando há produtos com flag BLOQUEADO = 'T' impedindo o processamento
  • Após correção de erros que causaram o bloqueio original
  • Para forçar uma nova tentativa de envio

Cuidado

Se os produtos foram bloqueados por um motivo específico (ex: dados inválidos), resolver a causa raiz antes de desbloqueá-los evita que travem novamente.


Fluxograma de Manutenção

┌─────────────────────────────────┐
│  Fila de integração travada?    │
└───────────────┬─────────────────┘

        ┌───────▼───────┐
        │  Muitos itens │───────────────────┐
        │  pendentes?   │                   │
        └───────┬───────┘                   │
                │ Sim                       │ Não
        ┌───────▼───────┐           ┌───────▼───────┐
        │ Identificar   │           │ Verificar     │
        │ maior TRANS_ID│           │ logs de erro  │
        └───────┬───────┘           └───────┬───────┘
                │                           │
        ┌───────▼───────┐           ┌───────▼───────┐
        │ Sincronizar   │           │ Reenviar item │
        │ TRANS_ID_     │           │ específico    │
        │ PRODUTO       │           │               │
        └───────────────┘           └───────────────┘

Próximos Passos

On this page