MD Software

Pedidos Não Integrados

Esta seção documenta os procedimentos para forçar a integração de pedidos que foram retirados da Vitrine ou que apresentaram falha.


Método de Importação Manual

Para forçar a integração de pedidos específicos, execute o método de importação do Millennium.

Método a Ser Executado

MILLENIUM_ECO.ACTIVE.IMPORT

Parâmetros

ParâmetroObrigatórioDescriçãoExemplo
VITRINESimIdentificador da vitrine1
COD_PEDIDOVSimCódigo do pedido na vitrineVTX-634901
SOMENTE_INCLUI_PEDIDOSimFlag para incluir apenas o pedido1
PEDIDO_EXTERNONãoCódigo do pedido na plataforma externa-

Como Executar

Execute este método através do painel de administração do Millennium, informando os parâmetros conforme a tabela acima.


Fila de Pedidos Travada

O sistema possui um limitador de 1000 pedidos na fila. Quando esse valor é alcançado, a fila trava e é necessário fazer uma análise e limpeza.

Sintoma

Se novos pedidos não estão sendo integrados e a fila parece parada, verifique se o limite de 1000 pedidos foi atingido.

Identificar e Bloquear Pedidos Problemáticos

Esta query identifica pedidos com erro de "código de pedido cliente" e os move para a tabela de bloqueados:

INSERT INTO VITRINE_PEDIDOS_BLOQUEADOS
    (VITRINE_PEDIDOS_BLOQUEADO, VITRINE, COD_PEDIDOV, PEDIDO_EXTERNO, DATA_INCLUSAO)
SELECT
    MIN(vp.VITRINE_PEDIDO) + 1,
    vl.VITRINE,
    vl.COD_PEDIDOV,
    vp.PEDIDO_EXTERNO,
    CURRENT_TIMESTAMP
FROM vitrine_log vl
INNER JOIN vitrine_pedidos vp ON vp.COD_PEDIDOV = vl.COD_PEDIDOV
LEFT JOIN pedido_venda pv ON pv.COD_PEDIDOV = vl.COD_PEDIDOV
LEFT JOIN VITRINE_PEDIDOS_BLOQUEADOS vb ON vb.COD_PEDIDOV = vp.COD_PEDIDOV
WHERE vb.VITRINE_PEDIDOS_BLOQUEADO IS NULL 
  AND pv.PEDIDOV IS NULL 
  AND vl.TIPO = '4' 
  AND vl.DATA > CURRENT_TIMESTAMP - 1
  AND vl.OBS LIKE '%digo de pedido cliente%'
GROUP BY vl.VITRINE, vl.COD_PEDIDOV, vp.PEDIDO_EXTERNO;

Bloquear Pedidos Específicos

Quando você já sabe quais pedidos precisam ser bloqueados, use um dos scripts abaixo conforme seu banco de dados.

Firebird

SET TERM ^ ;

EXECUTE BLOCK
AS
DECLARE pb_vitrine_counter INT;
DECLARE pb_vitrine INT;
DECLARE pb_cod_pedidov VARCHAR(255);
DECLARE pb_pedido_externo VARCHAR(255);
DECLARE counter INT;
BEGIN
    -- Inicializando o contador
    counter = 1;

    -- Obter o maior valor atual de vitrine_pedidos_bloqueado
    SELECT MAX(vitrine_pedidos_bloqueado) 
    FROM vitrine_pedidos_bloqueados 
    INTO :pb_vitrine_counter;

    -- Verificar se vitrine_pedidos_bloqueado é nulo e inicializá-lo com 0 se for o caso
    IF (pb_vitrine_counter IS NULL) THEN
        pb_vitrine_counter = 0;

    FOR SELECT
            VITRINE,
            COD_PEDIDOV,
            PEDIDO_EXTERNO
        FROM VITRINE_PEDIDOS
        WHERE COD_PEDIDOV IN ('VTX-594047')  -- Substituir pelos códigos dos pedidos
    INTO
            :pb_vitrine,
            :pb_cod_pedidov,
            :pb_pedido_externo
    DO
    BEGIN
        -- Calculando o novo vitrine_pedidos_bloqueados
        pb_vitrine_counter = :pb_vitrine_counter + :counter;

        -- Inserindo na tabela vitrine_pedidos_bloqueados
        INSERT INTO VITRINE_PEDIDOS_BLOQUEADOS
            (VITRINE_PEDIDOS_BLOQUEADO, VITRINE, COD_PEDIDOV, PEDIDO_EXTERNO, DATA_INCLUSAO)
        VALUES (
            :pb_vitrine_counter,
            :pb_vitrine,
            :pb_cod_pedidov,
            :pb_pedido_externo,
            CURRENT_TIMESTAMP
        );
    END
END^

SET TERM ; ^

Personalização

Altere a cláusula WHERE COD_PEDIDOV IN ('VTX-594047') com os códigos dos pedidos que deseja bloquear. Para múltiplos pedidos: WHERE COD_PEDIDOV IN ('VTX-594047', 'VTX-594048', 'VTX-594049')


SQL Server

BEGIN

DECLARE @vp_bloqueados INT;
SET @vp_bloqueados = (SELECT ISNULL(MAX(vitrine_pedidos_bloqueado), 0) FROM vitrine_pedidos_bloqueados);

INSERT INTO VITRINE_PEDIDOS_BLOQUEADOS
    (VITRINE_PEDIDOS_BLOQUEADO, VITRINE, COD_PEDIDOV, PEDIDO_EXTERNO, DATA_INCLUSAO)
SELECT
    @vp_bloqueados + ROW_NUMBER() OVER (ORDER BY (SELECT NULL)) AS VITRINE_PEDIDOS_BLOQUEADO,
    VITRINE,
    COD_PEDIDOV,
    PEDIDO_EXTERNO,
    GETDATE() AS DATA_INCLUSAO
FROM VITRINE_PEDIDOS
WHERE COD_PEDIDOV IN ('TRS-867516');  -- Substituir pelos códigos dos pedidos

END;

Tabela de Referência

Estrutura da Tabela VITRINE_PEDIDOS_BLOQUEADOS

ColunaTipoDescrição
VITRINE_PEDIDOS_BLOQUEADOINTIdentificador único (PK)
VITRINEINTIdentificador da vitrine
COD_PEDIDOVVARCHARCódigo do pedido na vitrine
PEDIDO_EXTERNOVARCHARCódigo do pedido na plataforma
DATA_INCLUSAOTIMESTAMPData de inclusão no bloqueio

Fluxo de Resolução

┌─────────────────────────────┐
│  Pedidos não integram?      │
└─────────────┬───────────────┘

      ┌───────▼───────┐
      │ Verificar se  │
      │ fila > 1000   │
      └───────┬───────┘

    ┌─────────┴─────────┐
    │ Sim               │ Não
    ▼                   ▼
┌───────────────┐   ┌───────────────┐
│ Identificar   │   │ Verificar     │
│ pedidos com   │   │ logs do       │
│ erro          │   │ pedido        │
└───────┬───────┘   └───────┬───────┘
        │                   │
        ▼                   ▼
┌───────────────┐   ┌───────────────┐
│ Bloquear      │   │ Usar método   │
│ pedidos       │   │ de importação │
│ problemáticos │   │ manual        │
└───────────────┘   └───────────────┘

Próximos Passos

On this page