ProtheusOrdemProducaoApontamento (STATUS: REVISANDO)
Documentação Técnica
| Nome do cliente | OSKLEN |
| Nome do projeto | Integração LINX → Protheus |
| Biblioteca | wosk_protheus_ordem_producao_apontamento |
| Data | 02/03/2026 |
Histórico de Versões
| Data | Versão | Modificado por | Descrição da Mudança |
| 02/03/2026 | 1.0 | Maykon | Criação da documentação técnica do processo ProtheusOrdemProducaoApontamento. |
Descrição
Este serviço organiza o envio de apontamentos de Ordem de Produção do LINX para o Protheus, garantindo captura por chave ou por data e registro do resultado da integração.
Capturador
Descrição Conceitual
Permite a captura manual de um ou mais apontamentos mediante chave no padrão filial-codigopa-operacao-numop-idservico (com idservico opcional) e a captura por agendador de tarefas com base em janela temporal, consultando a origem e registrando cada item para processamento assíncrono.
A captura por data segue processamento cronológico (ordenação/paginação por data) usando DATA_PARA_TRANSFERENCIA para priorizar registros mais antigos e manter continuidade por posição; link conceitual: Conceito Cronológico.
Fonte
Origem consultada: view WOSK_SERVICO_ENVIA_PROTHEUS_OP_APONTAMENTO_CABECALHO.
Fonte complementar consultada para compor os materiais do apontamento: view WOSK_SERVICO_ENVIA_PROTHEUS_OP_APONTAMENTO.
Consulta utilizada na captura por data (WHERE e paginação construídos dinamicamente conforme posição, data e limite configurado):
SELECT
FILIAL AS filial,
OPERACAO AS operacao,
NUMOP AS numop,
CODIGOPA AS codigopa,
FASE AS fase,
QTDPROD AS qtdprod,
QTDPERDA AS qtdperda,
ENCERRA AS encerra,
[DATA] AS [data],
IDSERVICO,
DATA_PARA_TRANSFERENCIA
FROM
WOSK_SERVICO_ENVIA_PROTHEUS_OP_APONTAMENTO_CABECALHO (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, com IDSERVICO opcional):
SELECT
FILIAL AS filial,
OPERACAO AS operacao,
NUMOP AS numop,
CODIGOPA AS codigopa,
FASE AS fase,
QTDPROD AS qtdprod,
QTDPERDA AS qtdperda,
ENCERRA AS encerra,
[DATA] AS [data],
IDSERVICO,
DATA_PARA_TRANSFERENCIA
FROM
WOSK_SERVICO_ENVIA_PROTHEUS_OP_APONTAMENTO_CABECALHO (NOLOCK)
WHERE
FILIAL = '<FILIAL>'
AND CODIGOPA = '<CODIGOPA>'
AND OPERACAO = '<OPERACAO>'
AND NUMOP = '<NUMOP>'
AND IDSERVICO = '<IDSERVICO>'
Consulta utilizada para recuperar materiais do apontamento (WHERE construído dinamicamente por FILIAL, CODIGOPA, OPERACAO, NUMOP e IDSERVICO):
SELECT
FILIAL AS filial,
OPERACAO AS operacao,
NUMOP AS numop,
CODIGOPA AS codigopa,
FASE AS fase,
QTDPROD AS qtdprod,
QTDPERDA AS qtdperda,
ENCERRA AS encerra,
[DATA] AS [data],
MATERIAL AS material,
QUANTIDADE AS quantidade,
[LOCAL] AS [local],
IDSERVICO
FROM
WOSK_SERVICO_ENVIA_PROTHEUS_OP_APONTAMENTO (NOLOCK)
WHERE
FILIAL = '<FILIAL>'
AND CODIGOPA = '<CODIGOPA>'
AND OPERACAO = '<OPERACAO>'
AND NUMOP = '<NUMOP>'
AND IDSERVICO = '<IDSERVICO>'
Operações com Dados
- Leitura: consulta a view WOSK_SERVICO_ENVIA_PROTHEUS_OP_APONTAMENTO_CABECALHO para obter o registro atual do apontamento (filial, operacao, numop, codigopa, fase, qtdprod, qtdperda, encerra, data, IDSERVICO, DATA_PARA_TRANSFERENCIA).- Chave do registro: define a chave do registro como filial-codigopa-operacao-numop-idservico para identificação e rastreio na fila; quando IDSERVICO não estiver presente na chave informada, o filtro manual omite esse campo e utiliza o IDSERVICO retornado pela origem.- Enriquecimento do registro atual: inclui no conteúdo do registro o campo materiais, obtido pela consulta à view WOSK_SERVICO_ENVIA_PROTHEUS_OP_APONTAMENTO, listando para cada material os campos material, quantidade e local.- Controle de limite de captura: obtém o limite de registros por ciclo via configuração woskLimiteCaptura::ProtheusOrdemProducaoApontamento, aplicado na paginação da consulta (FETCH NEXT <LIMITE>).- Continuidade e priorização por data: utiliza DATA_PARA_TRANSFERENCIA como referência de posição e consulta ordenada ascendente com paginação por OFFSET/FETCH, mantendo offset e chave_posicao para evitar recaptura.- Registro para processamento: cada apontamento capturado é persistido como pendência na fila de processamento sob o serviço ProtheusOrdemProducaoApontamento, com chave filial-codigopa-operacao-numop-idservico e conteúdo enriquecido (incluindo materiais) para processamento assíncrono.
Fila de Processamento
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) |
filial |
filial |
operacao |
operacao |
numop |
numop |
codigopa |
codigopa |
fase |
fase |
qtdprod |
qtdprod (normalizado) |
qtdperda |
qtdperda (normalizado) |
encerra |
encerra |
data |
data |
materiais[].material |
materiais[].material |
materiais[].quantidade |
materiais[].quantidade (normalizado) |
materiais[].local |
materiais[].local |
Tratamento de Dados
Transformações aplicadas no payload antes do envio:
- Valida se a ordem (
filial-codigopa-operacao-numop) está integrada. Quando a validação falha, o registro é finalizado como suspenso comsuspensaoTipoesuspensaoChavepreenchidos para rastreio. - Padronização numérica (precisão padrão do integrador):
qtdprod,qtdperda: normalizados via padronização numérica antes do envio.materiais[].quantidade: normalizado via padronização numérica para cada material quando a lista existir.
Integração com o Protheus
- Chamada:
Requisição HTTP - Recurso:
/rest/rtblinx/apontamento - Método HTTP:
POST - Cabeçalhos:
- tenantId:
<UF>,<FILIAL>, onde<UF>corresponde aos 2 primeiros caracteres defiliale<FILIAL>ao valor completo defilial.
- tenantId:
Exemplo de payload:
