Ir para o conteúdo principal

LojaAjusteEstoqueSaidaNormal (STATUS: DOCUMENTADO)

Documentação Técnica
Nome do clienteOSKLEN
Nome do projetoIntegração LINX → ILLI (Ajuste de Estoque — Saída Normal)
Bibliotecawosk_loja_ajuste_estoque_saida_normal
Data26/03/2026

Histórico de Versões
DataVersãoModificado porDescrição da Mudança
26/03/20261.0Maykon/GustavoCriaçã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 e ao semáforo. 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 setAjusteSaidaNormal; o retorno atualiza situação e mensagem na tabela da fila de integração.

 
Estruturação de Dados
Campos do conteudo
Campo no payloadCampo de origem
ROMANEIO_PRODUTOROMANEIO_PRODUTO
FILIALFILIAL
EMISSAOEMISSAO
OBSOBS
CM_OPERACAOCM_OPERACAO
TIPO_ROMANEIOTIPO_ROMANEIO
DATA_DIGITACAODATA_DIGITACAO
DATA_PARA_TRANSFERENCIADATA_PARA_TRANSFERENCIA
ITENSArray de ESTOQUE_PROD1_SAI (SA_1 a SA_48, CUSTO1, etc.)

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/setAjusteSaidaNormal
  • Método HTTP: POST
  • Cabeçalhos: os definidos internamente pela rotina de integração ILLI (não fixados neste arquivo).
  • 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 4. Quando success não está vazio, situação 2; caso contrário situação 4. 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

Diagrama do processo


Critérios de Aceitação
ProcessoSubprocessoDescriçãoSituação esperada
CapturadorCaptura automáticaDeve 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.
CapturadorCaptura por chaveDeve validar chave em duas partes e reenfileirar com token quando existir.Chave inválida interrompe com exceção.
Fila de ProcessamentoIntegração ILLIDeve enviar ao recurso /bibliotecas/e3a6737d-ac74-4ed6-9668-e3921320c29f/ilx_ajuste_estoque/setAjusteSaidaNormal, 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.