Ir para o conteúdo principal

ProtheusTransportadora (STATUS: AJUSTADO)

Documentação Técnica

Nome do cliente OSKLEN
Nome do projeto Integração LINX → Protheus
Biblioteca wosk_protheus_transportadora
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 ProtheusTransportadora.

Descrição

Este serviço integra os cadastros de transportadoras do LINX para o Protheus, garantindo captura consistente e envio com validação de retorno.

Capturador

Descrição Conceitual

Permite a captura manual (por códigos) e a captura automática (por agendador de tarefas) dos registros pendentes de integração, consultando a origem e registrando os registros para processamento assíncrono.

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

Fonte

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

SELECT
    CODIGO,
    NOME,
    NOME_REDUZ,
    ENDERECO,
    BAIRRO,
    COMPLEMENTO,
    UF,
    COD_MUNICIPIO_IBGE,
    CEP,
    DDI,
    DDD,
    TELEFONE,
    CGC,
    INSCRICAO,
    EMAIL,
    COD_PAIS_BC,
    A4_MSBLQL,
    DATA_PARA_TRANSFERENCIA
FROM
    WOSK_SERVICO_ENVIA_PROTHEUS_TRANSPORTADORAS
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 (lista de códigos e WHERE construído dinamicamente):

SELECT
    CODIGO,
    NOME,
    NOME_REDUZ,
    ENDERECO,
    BAIRRO,
    COMPLEMENTO,
    UF,
    COD_MUNICIPIO_IBGE,
    CEP,
    DDI,
    DDD,
    TELEFONE,
    CGC,
    INSCRICAO,
    EMAIL,
    COD_PAIS_BC,
    A4_MSBLQL,
    DATA_PARA_TRANSFERENCIA
FROM
    WOSK_SERVICO_ENVIA_PROTHEUS_TRANSPORTADORAS
WHERE
    CODIGO IN ('<CODIGO_1>','<CODIGO_2>')

Operações com Dados

- Leitura: consulta a view WOSK_SERVICO_ENVIA_PROTHEUS_TRANSPORTADORAS para obter o registro atual de transportadora (campo-chave CODIGO) e encaminhar para processamento assíncrono.
- Leitura auxiliar de chaves com falha (checagem): consulta a tabela wosk_capturar filtrando por ProtheusTransportadora e situação igual erro, retornando até 500 chaves para suporte operacional.

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 registro atual
A4_COD CODIGO
A4_NOME NOME
A4_NREDUZ NOME_REDUZ
A4_END ENDERECO
A4_BAIRRO BAIRRO
A4_COMPLEM COMPLEMENTO
A4_EST UF
A4_COD_MUN COD_MUNICIPIO_IBGE
A4_CEP CEP
A4_DDI DDI
A4_DDD DDD
A4_TEL TELEFONE
A4_CGC CGC
A4_INSEST INSCRICAO
A4_EMAIL EMAIL
A4_CODPAIS COD_PAIS_BC
A4_MSBLQL A4_MSBLQL

Exemplo de payload enviado:

{
  "A4_COD": "",
  "A4_NOME": "",
  "A4_NREDUZ": "",
  "A4_END": "",
  "A4_BAIRRO": "",
  "A4_COMPLEM": "",
  "A4_EST": "",
  "A4_COD_MUN": "",
  "A4_CEP": "",
  "A4_DDI": "",
  "A4_DDD": "",
  "A4_TEL": "",
  "A4_CGC": "",
  "A4_INSEST": "",
  "A4_EMAIL": "",
  "A4_CODPAIS": "",
  "A4_MSBLQL": ""
}



Tratamento de Dados

Quando algum campo não estiver disponível no registro atual, o valor é preenchido de forma consistente (ex.: vazio), garantindo que o envio mantenha o formato esperado pelo Protheus.

Integração com o Protheus

Chamada de integração com o Protheus
- Chamada: Requisição HTTP
- Recurso: /rest/transportadora
- Método POST
- Cabeçalhos: nenhum cabeçalho explícito informado na chamada

Tratamento de retorno

  - Ausência de resposta: registra erro com mensagem de JSON: NÃO HOUVE RESPOSTA. e finaliza o registro como falha.
  - Resposta inválida/inesperada: se o retorno não puder ser interpretado como estrutura contendo Mensagem, registra erro de decodificação e finaliza como falha.
  - Indicadores de erro: finaliza como falha quando houver code no retorno ou quando Mensagem for ERRO. Quando disponível, utiliza Mensagem Detalhada como mensagem final.
  - Sucesso: quando não houver indicadores de erro, finaliza como sucesso e persiste o retorno para auditoria.Ao final do processamento, o registro é atualizado na fila de processamento com o retorno do Protheus (quando existir), a mensagem consolidada e a situação final (sucesso/erro). O tempo de processamento é registrado para acompanhamento operacional.

Ao final do processamento, o registro é atualizado na fila de processamento com o retorno do Protheus (quando existir), a mensagem consolidada e a situação final (sucesso/erro). O tempo de processamento é registrado para acompanhamento operacional.

Encaminhamento em cenário de erro

Quando ocorre erro na integração (ausência de resposta, resposta inválida ou retorno com indicador de falha), o registro é finalizado como erro e permanece registrado fila de processamento com detalhes de mensagem e retorno, permitindo acompanhamento e reprocessamento conforme necessidade operacional.

Notificação

A notificação de erros consulta registros com falha na fila de processamento (serviço ProtheusTransportadora e situação de erro), ordenando pela data de processamento para priorizar ocorrências mais antigas. A mensagem de erro é normalizada para leitura, removendo prefixos e trechos técnicos quando identificados.

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_TRANSPORTADORAS com ordenação por DATA_PARA_TRANSFERENCIA e paginação, deve manter a continuidade por posição persistida em wosk_monitor (evento, offset, chave_posicao, data_posicao). Posição atualizada na tabela wosk_monitor e registros pendentes registrados para processamento assíncrono.
Capturador Captura manual por código Ao informar uma lista de CODIGO, deve consultar a view filtrando por CODIGO IN (...) e registrar cada registro correspondente para processamento. registros pendentes registrados para processamento, associados ao código da transportadora.
Fila de Processamento Integração com Protheus Ao processar um registro pendente fila de processamento (serviço ProtheusTransportadora), deve montar payload conforme $field (campos A4_*) e realizar a integração com o recurso transportadora, registrando o retorno e a mensagem final. registro atualizado na fila de processamento  com retorno/mensagem e situação final coerente (sucesso quando não houver erro; erro quando houver ausência de resposta, resposta inválida, code ou Mensagem = ERRO).