Ir para o conteúdo principal

LojaAjusteEstoqueSaidaNormal

Documentação Técnica
Nome do cliente OSKLEN
Nome do projeto Integração LINX → ILLI (Ajuste de Estoque — Saída Normal)
Biblioteca wosk_loja_ajuste_estoque_saida_normal
Data 26/03/2026

Histórico de Versões
Data Versão Modificado por Descrição da Mudança
26/03/2026 1.0 Maykon/Gustavo Criação da documentação técnica do processo Loja Ajuste Estoque Saída Normal (LINX → ILLI).

Descrição

Este serviço de ajuste de estoque (saída normal) identifica romaneios de saída no LINX com perfil de ajuste e operação de custo médio prevista e encaminha os dados ao ILLI.
Garante captura, fila e registro de sucesso ou erro na integração.

Capturador

Descrição Conceitual

A captura automática consulta ESTOQUE_PROD_SAI quando o serviço LojaAjusteEstoqueSaidaNormal está apto, com TIPO_ROMANEIO = 'AJUSTE', CM_OPERACAO = '011', filiais de loja (excluindo estoque central e centro de distribuição), DATA_PARA_TRANSFERENCIA mínima, ordenação por DATA_PARA_TRANSFERENCIA e ROMANEIO_PRODUTO e paginação conforme o limite configurado para o serviço LojaAjusteEstoqueSaidaNormal, alinhada ao processamento cronológico. Para cada linha, anexa ITENS de ESTOQUE_PROD1_SAI, monta a chave FILIAL-ROMANEIO_PRODUTO e grava na Fila de Processamento.

A captura por chave segue o padrão FILIAL-ROMANEIO_PRODUTO, com releitura e reenfileiramento preservando token quando existir.

Fonte

Origem consultada: tabela ESTOQUE_PROD_SAI. Itens: ESTOQUE_PROD1_SAI.

Consulta principal:

SELECT
    ROMANEIO_PRODUTO,
    FILIAL,
    EMISSAO,
    OBS,
    CM_OPERACAO,
    TIPO_ROMANEIO,
    DATA_DIGITACAO,
    DATA_PARA_TRANSFERENCIA
FROM
    ESTOQUE_PROD_SAI (NOLOCK)

Operações com Dados

Leitura: conforme Fonte; itens por ROMANEIO_PRODUTO em ESTOQUE_PROD1_SAI com colunas SA_1 a SA_48 e CUSTO1.

Consulta dinâmica (captura automática): FILIAL IN (...), TIPO_ROMANEIO = 'AJUSTE', CM_OPERACAO = '011', DATA_PARA_TRANSFERENCIA >= filtro, ORDER BY DATA_PARA_TRANSFERENCIA ASC, ROMANEIO_PRODUTO ASC, OFFSET ... FETCH NEXT ... conforme limite do serviço LojaAjusteEstoqueSaidaNormal.

Consulta dinâmica (captura por chave): WHERE FILIAL = ... AND ROMANEIO_PRODUTO = ....

Validação (captura por chave): chave em duas partes; senão erro de chave inválida.

Persistência: serviço LojaAjusteEstoqueSaidaNormal, chave FILIAL-ROMANEIO_PRODUTO e estado do capturador.

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 ILLI.
O envio ocorre via aplica ajuste de saída normal; o retorno atualiza situação e mensagem na tabela da fila de integração.

Estruturação de Dados
Campos do conteudo
Campo no payload Campo de origem
ROMANEIO_PRODUTO ROMANEIO_PRODUTO
FILIAL FILIAL
EMISSAO EMISSAO
OBS OBS
CM_OPERACAO CM_OPERACAO
TIPO_ROMANEIO TIPO_ROMANEIO
DATA_DIGITACAO DATA_DIGITACAO
DATA_PARA_TRANSFERENCIA DATA_PARA_TRANSFERENCIA
ITENS Array de ESTOQUE_PROD1_SAI (SA_1 a SA_48, CUSTO1, etc.)
Estrutura de cada elemento de ITENS (ESTOQUE_PROD1_SAI)
Campo Tipo Obrigatório Descrição
PRODUTO string sim Código do produto vinculado ao romaneio.
COR_PRODUTO string sim Cor do produto na grade.
SA_1, SA_2, SA_3, SA_4, SA_5, SA_6, SA_7, SA_8, SA_9, SA_10, SA_11, SA_12, SA_13, SA_14, SA_15, SA_16, SA_17, SA_18, SA_19, SA_20, SA_21, SA_22, SA_23, SA_24, SA_25, SA_26, SA_27, SA_28, SA_29, SA_30, SA_31, SA_32, SA_33, SA_34, SA_35, SA_36, SA_37, SA_38, SA_39, SA_40, SA_41, SA_42, SA_43, SA_44, SA_45, SA_46, SA_47, SA_48 string não Posições de quantidade por grade/tamanho da saída normal.
CUSTO1 string não Valor de custo da linha do item.

Exemplo ilustrativo de corpo enviado ao ILLI (estrutura alinhada ao conteudo):

{
  "ROMANEIO_PRODUTO": "<ROMANEIO_PRODUTO>",
  "FILIAL": "<FILIAL>",
  "EMISSAO": "<EMISSAO>",
  "OBS": "<OBS>",
  "CM_OPERACAO": "<CM_OPERACAO>",
  "TIPO_ROMANEIO": "<TIPO_ROMANEIO>",
  "DATA_DIGITACAO": "<DATA_DIGITACAO>",
  "DATA_PARA_TRANSFERENCIA": "<DATA_PARA_TRANSFERENCIA>",
  "ITENS": []
}
Tratamento de Dados
  • ITENS: linhas de ESTOQUE_PROD1_SAI para o ROMANEIO_PRODUTO atual, com SA_1 a SA_48 e CUSTO1.
  • Envio: conteudo como JSON sem mapeamento adicional no arquivo analisado.
Integração com o ILLI
  • Chamada: Requisição HTTP
  • Recurso: /bibliotecas/e3a6737d-ac74-4ed6-9668-e3921320c29f/ilx_ajuste_estoque/aplica ajuste de saída normal
  • Método HTTP: POST
  • Corpo: conteudo do registro na fila.
Tratamento de retorno

Ausência de resposta ou retorno sem success e sem message gera exceção e situação erro. Quando success não está vazio, situação sucesso; caso contrário situação erro. Em exceção, mensagem persistida; retorno não reconhecido pode estruturar erro e dados.

Notificação

A notificação de erros consulta registros com falha na tabela da fila de integração para o serviço LojaAjusteEstoqueSaidaNormal e situação de erro, ordenando pelo horário de processamento para priorizar ocorrências mais antigas.

Fluxo do Processo

wosk_loja_ajuste_estoque_saida_normal.drawio.jpg


Critérios de Aceitação
Processo Subprocesso Descrição Situação esperada
Capturador Captura automática Deve filtrar ESTOQUE_PROD_SAI com TIPO_ROMANEIO = 'AJUSTE' e CM_OPERACAO = '011', anexar ESTOQUE_PROD1_SAI e gravar na fila LojaAjusteEstoqueSaidaNormal. Registro pendente com payload completo.
Capturador Captura por chave Deve valida os dados chave em duas partes e reenfileirar com token quando existir. Chave inválida interrompe com exceção.
Fila de Processamento Integração ILLI Deve enviar ao recurso /bibliotecas/e3a6737d-ac74-4ed6-9668-e3921320c29f/ilx_ajuste_estoque/aplica ajuste de saída normal, interpretar sucesso ou erro com mensagem e persistir situação na tabela da fila de integração. Situação final e detalhes alinhados ao retorno do ILLI.