Ir para o conteúdo principal

ProtheusPedidoOmniElresiduo (STATUS: PARCIAL)

Documentação Técnica

Nome do cliente OSKLEN
Nome do projeto Integração LINX → Protheus
Biblioteca wosk_protheus_pedido_omni_elresiduo
Data 27/02/2026


Histórico de Versões

Data Versão Modificado por Descrição da Mudança
27/02/2026 1.0 Maykon Criação da documentação técnica do processo ProtheusPedidoOmniElresiduo.

Descrição

Esta biblioteca organiza o envio de exclusão/ajuste de resíduo de itens de Pedido Omni do LINX para o Protheus, garantindo captura consistente e integração com validação de retorno.

Capturador

Descrição Conceitual

Realiza a captura automática (por agendador de tarefas) dos pedidos Omni pendentes, consultando a origem por janela temporal e registrando os itens para processamento assíncrono.

A captura automática segue processamento cronológico (ordenação/paginação por data) para priorizar registros mais antigos e manter continuidade por posição; link conceitual: Processamento cronológico.

Fonte

Origem consultada: view WOSK_SERVICO_ENVIA_PROTHEUS_OMNI_EXCLUSAO.

Consulta utilizada na captura automática (WHERE e paginação construídos dinamicamente conforme posição e configuração de limite):

SELECT
    cpedsite,
    cproduto,
    citem,
    nquant,
    DATA_PARA_TRANSFERENCIA
FROM
    WOSK_SERVICO_ENVIA_PROTHEUS_OMNI_EXCLUSAO (NOLOCK)
WHERE
    DATA_PARA_TRANSFERENCIA >= '<DATA_PARA_TRANSFERENCIA>'
ORDER BY
    DATA_PARA_TRANSFERENCIA ASC
OFFSET
    <OFFSET> ROWS FETCH NEXT <LIMITE> ROWS ONLY



Consulta utilizada na captura manual (chave informada e WHERE construído dinamicamente):

SELECT
    cpedsite,
    cproduto,
    citem,
    nquant,
    DATA_PARA_TRANSFERENCIA
FROM
    WOSK_SERVICO_ENVIA_PROTHEUS_OMNI_EXCLUSAO (NOLOCK)
WHERE
    cpedsite = '<CPEDSITE>'

 

Operações com Dados

- Leitura: consulta a view WOSK_SERVICO_ENVIA_PROTHEUS_OMNI_EXCLUSAO para obter o registro atual de pedido e encaminhar para processamento assíncrono.

- Controle de limite de captura: obtém o limite de itens por ciclo via configuração woskLimiteCaptura::ProtheusPedidoOmniElresiduo, aplicado na paginação da consulta (FETCH NEXT <LIMITE>).

Fila de Processamento

Descrição Conceitual

A fila recupera um registro pendente e utiliza o conteúdo do registro como base do payload de integração. Em seguida, aplica transformações obrigatórias de padronização e realiza a chamada ao Protheus.

Estruturação de Dados

Campo no payload Origem no item de fila (conteúdo)
cfilial cfilial
cpedsite cpedsite
cproduto cproduto
nquant nquant
citem citem

Integração com o Protheus

Chamada de integração com o Protheus
- Chamada: Requisição HTTP
- Recurso: rtbomni/elresiduo com parâmetros na URL
- Método HTTP: POST
- Exemplo de recurso com parâmetros:
    rtbomni/elresiduo?cpedsite=<CPEDSITE>&cproduto=<CPRODUTO>&citem=<CITEM>&nquant=<NQUANT>
  

Tratamento de retorno

Ausência de resposta: registra falha com mensagem JSON: NÃO HOUVE RESPOSTA. e finaliza o item como erro.

Resposta inválida/inesperada: quando não for possível obter um código de retorno, registra falha com mensagem JSON: NÃO FOI POSSÍVEL DECODIFICAR A RESPOSTA..

Mapeamento de campos de retorno: quando presentes, COD é reinterpretado como code e MSG como message para padronização de leitura do retorno.

Indicadores de sucesso/erro: considera sucesso quando code for R200 ou X200; demais valores finalizam como erro.

Consolidação de mensagem: a mensagem final é composta por message e, quando existir, complementada por detailedMessage.

Ao final do processamento, o item é atualizado na tabela wosk_queue com o retorno do Protheus (quando existir), a mensagem consolidada e a situação final. O tempo de processamento é registrado e a situação é definida como sucesso (2) ou erro (4) conforme o código retornado.

Encaminhamento em cenário de erro

Quando ocorre erro na integração (ausência de resposta, resposta inválida ou código diferente de R200/X200), o item é finalizado como erro e permanece registrado em wosk_queue com detalhes do retorno e da mensagem para acompanhamento operacional. Quando houver aplicação de suspensão (quando identificada no fluxo), a situação pode ser marcada como suspenso (3).

Notificação

A notificação de erros consulta itens com falha na tabela wosk_queue (serviço ProtheusPedidoOmniElresiduo e situação de erro), ordenando pela data de processamento para priorizar ocorrências mais antigas. Para compor a listagem, o campo cpedsite é preenchido a partir da chave do item e a mensagem de erro é normalizada: quando identificado padrão de erro de SQL Server, é extraído apenas o trecho relevante; quando existir separador :, é mantida a parte posterior; quebras de linha são padronizadas para exibição. As datas data_adicionado e data são formatadas para d/m/Y H:i:s.

Fluxo do Processo

Diagrama sem nome.jpg


Critérios de Aceitação

Processo Subprocesso Descrição Situação esperada
Capturador Captura cronológica e controle de posição Ao consultar a view WOSK_SERVICO_ENVIA_PROTHEUS_OMNI_EXCLUSAO com filtro por DATA_PARA_TRANSFERENCIA, ordenação ascendente e paginação por OFFSET/FETCH, deve manter a continuidade por posição persistida em wosk_monitor (evento, offset, chave_posicao, data_posicao, filtro). Posição atualizada na tabela wosk_monitor e itens pendentes registrados para processamento assíncrono.
Capturador Captura manual por pedido Ao informar um cpedsite, deve consultar a origem filtrando por cpedsite e registrar o item correspondente para processamento. Item pendente registrado para processamento, associado à chave do pedido.
Fila de Processamento Integração com Protheus Ao processar um item pendente em wosk_queue (serviço ProtheusPedidoOmniElresiduo), deve compor o recurso rtbomni/elresiduo com os parâmetros cpedsite, cproduto, citem e nquant e registrar o retorno e a mensagem final. Item atualizado em wosk_queue com retorno/mensagem e situação final coerente (sucesso quando code for R200/X200; erro caso contrário, ou quando não houver resposta/código).
Fila de Processamento Notificação de falhas Ao existirem itens com erro (situacao = 4) para o serviço ProtheusPedidoOmniElresiduo, deve listar os itens ordenados por data de processamento e normalizar a mensagem para leitura, incluindo ajuste de quebras de linha e formatação de datas. Lista gerada com cpedsite consistente (a partir da chave), datas em d/m/Y H:i:s e mensagem consolidada para suporte operacional.