Ir para o conteúdo principal

LojaAjusteEstoque (STATUS: CRIADO)

Documentação Técnica
Nome do cliente OSKLEN
Nome do projeto Integração LINX → ILLI (AjusteCliente de Estoque — Contagem)Loja)
Biblioteca wosk_loja_ajuste_estoquewosk_loja_cliente
Data 26/25/03/2026

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

Descrição

Este serviço de ajusteclientes de estoque por contagemvarejo no LINX encaminhaa aopartir ILLIdo osPDV dados de contagens já marcadas para transferência,integra com o detalheILLI dosvia itensfila ajustados.quando necessário.
GaranteCoordena fila,captura integraçãautomática ou por código, valida endereço e registrodocumento e registra o resultado de sucessocada ou erroenvio para cada contagem elegível por filial.acompanhamento.

Capturador

Descrição Conceitual

A captura automática consulta a view ESTOQUE_PROD_CONTAGEMCLIENTES_VAREJO quando o estado do serviço LojaAjusteEstoqueLojaCliente está aptoapto, (reiníciocom afiltro partirpor deDATA_PARA_TRANSFERENCIA, situaçordenação concluídapor ou continuação em andamento), restringindo a filiais de loja definidas em ambiente (excluindo estoque centraldata e centro de distribuição), ESTOQUE_AJUSTADO = '1', data mínima de transferência e processamento cronológico (ordenaçãocódigo e paginação por data) com ORDER BY DATA_PARA_TRANSFERENCIA ASC, OFFSET e FETCH NEXT conforme o limite de registros por lote configurado para o serviço LojaAjusteEstoqueLojaCliente, alinhada ao processamento cronológico. Para cada linhalinha, retornada,atualiza obtém-seposição, o detalhe em ESTOQUE_PROD_CTG_AJUSTE, compõe-se a chave NOME_CONTAGEM-FILIAL e o registro é gravadograva na Filafila de Processamentointegração com serviço LojaAjusteEstoqueLojaCliente, atualizando offset,e chave eCODIGO_CLIENTE; dataao definal posiçãodo atélote concluirou em erro, atualiza o ciclo.estado do capturador.

A origem dos dados é a tabela CLIENTES_VAREJO com enriquecimento por município e país via view W_LCF_LX_MUNICIPIO e tabela LCF_LX_PAIS. A captura por chavecódigo aceita umaum ou mais chavesCODIGO_CLIENTE, no formato NOME_CONTAGEM-FILIAL; sereutiliza a chavemesma projeção tiver duas partes, o fluxo interrompe com erro de chave inválida. Para cada chave válida, consulta-se ESTOQUE_PROD_CONTAGEM com filtro fixoem por nome de contagemlista e filial,enfileira enriquece-secada o registro com ITENS a partir de ESTOQUE_PROD_CTG_AJUSTE e grava-se na Fila de Processamento,registro, preservando o token quando já existir para a mesma chave.

Fonte

Origem consultada: view ESTOQUE_PROD_CONTAGEM. Complemento de linhas de produto: tabela ESTOQUE_PROD_CTG_AJUSTE.

Consulta principal:

SELECT
    NOME_CONTAGEM,CLI.CODIGO_CLIENTE,
    CLI.CLIENTE_VAREJO,
    CLI.CPF_CGC,
    CLI.RG_IE,
    CLI.ANIVERSARIO,
    CLI.TIPO_LOGRADOURO,
    CLI.ENDERECO,
    CLI.NUMERO,
    CLI.COMPLEMENTO,
    CLI.BAIRRO,
    CLI.CIDADE,
    CLI.UF,
    CLI.CEP,
    CLI.PAIS,
    LLM.COD_MUNICIPIO_IBGE AS IBGE,
    LLP.COD_PAIS_BC AS PAIS_BC,
    CLI.DDD,
    CLI.TELEFONE,
    CLI.DDD_CELULAR,
    CLI.CELULAR,
    CLI.EMAIL,
    CLI.CODIGO_CONTATO,
    CLI.FILIAL,
    EMISSAO,CLI.ESTRANGEIRO,
    RESPONSAVEL,CLI.TIPO_VAREJO,
    CLI.TIPO_BLOQUEIO,
    CLI.CADASTRAMENTO,
    CLI.OBS,
    ESTOQUE_AJUSTADO,CLI.SEXO,
    DATA_AJUSTE,CLI.STATUS,
    TIPO,
    SALDO_ARMAZENADO,
    CONTAGEM_POR_AREA_FECHADA,
    DATA_PARA_TRANSFERENCIA,
    NOME_CONTAGEM_ANTERIORCLI.DATA_PARA_TRANSFERENCIA
FROM
    ESTOQUE_PROD_CONTAGEMCLIENTES_VAREJO CLI (NOLOCK)
    LEFT JOIN W_LCF_LX_MUNICIPIO LLM (NOLOCK) ON (
        DBO.FX_REPLACE_CARACTER_ESPECIAL_NFE(DEFAULT, LTRIM(RTRIM(CLI.CIDADE))) = LLM.DESC_MUNICIPIO
        AND CLI.UF = LLM.UF
    )
    LEFT JOIN LCF_LX_PAIS LLP (NOLOCK) ON (CLI.PAIS = LLP.DESC_PAIS)

Operações com Dados

Leitura: consultaConsulta da viewtabela ESTOQUE_PROD_CONTAGEMCLIENTES_VAREJO com LEFT JOIN em W_LCF_LX_MUNICIPIO e LCF_LX_PAIS, conforme SQL da seção Fonte; detalhamento de itens por NOME_CONTAGEM na tabela ESTOQUE_PROD_CTG_AJUSTE.

Consulta dinâmica (captura automática): reutiliza a projeção com WHEREfiltro FILIAL IN (...) (lista de filiais de loja, excluindo as removidas no código), ESTOQUE_AJUSTADO = '1',em DATA_PARA_TRANSFERENCIA maior ou igual ao filtro do capturador, ORDER BY DATA_PARA_TRANSFERENCIA ASC, ordenação e paginação (OFFSET e /FETCH) NEXT comconforme o limite de registros por lote configurado para o serviço LojaAjusteEstoqueLojaCliente. e o estado do capturador.

Consulta dinâmica (captura por chave)código): mesma projeção com WHERECODIGO_CLIENTE NOME_CONTAGEMIN = '{parte1}' AND FILIAL = '{parte2}' obtidas da chave.

Detalhamento de itens por contagem: consulta à tabela ESTOQUE_PROD_CTG_AJUSTE com WHERE NOME_CONTAGEM = '{NOME_CONTAGEM}', retornando colunas de produto, grade A1 a A48, custos CUSTO1 a CUSTO4, CM_OPERACAO, DATA_PARA_TRANSFERENCIA, QTDE_AJUSTE, COR_PRODUTO e PRODUTO(...).

Persistência: estadograva do capturador pelo serviço LojaAjusteEstoque (offset, chave de posição, datas, filtro e situação); registrositens pendentes na tabela da filaFila de integraçãoProcessamento, com serviço LojaAjusteEstoqueLojaCliente e chave NOME_CONTAGEM-FILIALCODIGO_CLIENTE. (preservando token quando já existir para a mesma chave); o estado do capturador mantém offset, posição e situação da captura.

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 fluxo marca o registro como em envio, enviamonta o conteúdocorpo aoJSON recursopara o endpoint ILLI de ajustepessoa/cliente, devalida estoque,IBGE e código BACEN quando aplicável, interpreta o retorno JSON de retorno (success, message) e grava situação final, mensagem, tempo e auditoria de requisição na tabela da fila de integração.

 
Estruturação de Dados

O conteudo gravado na fila corresponde ao registro atual da view ESTOQUE_PROD_CONTAGEM após inclusão da chave ITENS com o array de linhas lidas de ESTOQUE_PROD_CTG_AJUSTE para o mesmo NOME_CONTAGEM.

  • Chamada: Requisição HTTP
  • Recurso: e3a6737d-ac74-4ed6-9668-e3921320c29f/ilx_ajuste_estoque/setAjuste
  • Método HTTP: POST

Exemplo de payload enviado ao ILLI (JSON):

{
  "NOME_CONTAGEM": "<NOME_CONTAGEM>",
  "FILIAL": "<FILIAL>",
  "EMISSAO": "<EMISSAO>",
  "RESPONSAVEL": "<RESPONSAVEL>",
  "OBS": "<OBS>",
  "ESTOQUE_AJUSTADO": "<ESTOQUE_AJUSTADO>",
  "DATA_AJUSTE": "<DATA_AJUSTE>",
  "TIPO": "<TIPO>",
  "SALDO_ARMAZENADO": "<SALDO_ARMAZENADO>",
  "CONTAGEM_POR_AREA_FECHADA": "<CONTAGEM_POR_AREA_FECHADA>",
  "DATA_PARA_TRANSFERENCIA": "<DATA_PARA_TRANSFERENCIA>",
  "NOME_CONTAGEM_ANTERIOR": "<NOME_CONTAGEM_ANTERIOR>",
  "ITENS": [
    {
      "NOME_CONTAGEM": "<NOME_CONTAGEM>",
      "PRODUTO": "<PRODUTO>",
      "COR_PRODUTO": "<COR_PRODUTO>",
      "QTDE_AJUSTE": "<QTDE_AJUSTE>",
      "A1": "<A1>",
      "A48": "<A48>",
      "CUSTO1": "<CUSTO1>",
      "CM_OPERACAO": "<CM_OPERACAO>",
      "DATA_PARA_TRANSFERENCIA": "<DATA_PARA_TRANSFERENCIA_ITEM>"
    }
  ]
}
Campos raiz do payload ILLI e origem no conteudo enviado(consulta aoCLIENTES_VAREJO, incluindo IBGE e PAIS_BC via joins)
Campo no payload ILLICampo de origem
codigoCODIGO_CLIENTE
nomeCLIENTE_VAREJO
tipo_clienteConstante CLIENTE
filialCadastroFILIAL
generoSEXO
grupoTIPO_VAREJO
complementoOBS
contatosArray montado a partir de DDD, TELEFONE, DDD_CELULAR, CELULAR, EMAIL (ver tabela do array contatos)
situacaoSTATUS (ativo 1 ou inativo conforme regra)
data_nascimentoANIVERSARIO
data_cadastroCADASTRAMENTO
dataDATA_PARA_TRANSFERENCIA
tipo, cnpj, iePessoa jurídica quando CPF_CGC com mais de 11 caracteres; RG_IE como inscrição
tipo, cpf, identidadePessoa física quando CPF_CGC com até 11 caracteres; RG_IE como identidade
Objeto endereco no payload ILLI (endereco.*)
Campo no payload ILLICampo de origem
endereco.cepCEP (somente dígitos, completado à esquerda até 8 posições)
endereco.logradouroTIPO_LOGRADOURO concatenado a ENDERECO (limitado a 250 caracteres)
endereco.numeroNUMERO (somente dígitos)
endereco.complementoCOMPLEMENTO (limitado a 250 caracteres)
endereco.bairroBAIRRO
endereco.cidadeCIDADE
endereco.ufUF (regra especial quando vazio ou com mais de 2 caracteres; estrangeiro usa EX)
endereco.paisPAIS
endereco.codigo_ibgeIBGE ou valor fixo para estrangeiro quando aplicável
endereco.codigo_bacenPAIS_BC
concatenadossomentecomdígitos;parae-mail:
Elementos do array contatos (objetos montados no fluxo)
Campo Tipo Obrigatório Descrição
keystringnãoChave interna da fila quando aplicável à plataforma; o envio ao ILLI usa o array de conteúdo montado na captura.
NOME_CONTAGEMtipo string sim Identificador da contagem na viewTELEFONE, ESTOQUE_PROD_CONTAGEMCELULAR ou EMAIL.
FILIALcontato string sim CódigoPara datelefone/celular: filialDDD nae viewnúmero ESTOQUE_PROD_CONTAGEM.
EMISSAO string não Data ou referência de emissão conforme origem.
RESPONSAVELstringnãoResponsável informado na contagem.
OBSstringnãoObservações da contagem.
ESTOQUE_AJUSTADOstringsimIndicador de estoque ajustado (1 na seleçãotexto do capturador).
DATA_AJUSTEstringnãoData do ajuste conforme origem.
TIPOstringnãoTipo da contagem.
SALDO_ARMAZENADOstringnãoSaldo armazenado informado.
CONTAGEM_POR_AREA_FECHADAstringnãoIndicador de contagem por área fechada.
DATA_PARA_TRANSFERENCIAstringsimData e hora mínima de transferência usada no filtro e ordenação do capturador.
NOME_CONTAGEM_ANTERIORstringnãoReferência de contagem anterior quando existir.
ITENSarraysimLinhas de ESTOQUE_PROD_CTG_AJUSTE para o NOME_CONTAGEM; ver tabela de elementos.e-mail.
corpoenviadoao
Estrutura

Exemplo ilustrativo de cada elemento de ITENS

CampoTipoObrigatórioDescrição
NOME_CONTAGEMstringsimRepete o identificador da contagem na linha de item.
PRODUTOstringsimCódigotrecho do produto.
ILLI (estrutura resumida):

COR_PRODUTO{
  "codigo": "...",
  "nome": "...",
  "endereco": {
    "cep": "00000000",
    "referencia": "",
    "logradouro": "...",
    "numero": "...",
    "complemento": "...",
    "bairro": "...",
    "cidade": "...",
    "uf": "...",
    "pais": "...",
    "codigo_ibge": "...",
    "codigo_bacen": "..."
  },
  "tipo_cliente": ["CLIENTE"],
  "filialCadastro": "...",
  "contatos": [
    { "tipo": "TELEFONE", "contato": "11999999999" }
  ],
  "situacao": "1",
  "tipo": "FISICA",
  "cpf": "00000000000"
}
string sim Cor do produto.
QTDE_AJUSTEstringsimQuantidade ajustada.
A1stringnãoQuantidade de grade posição 1.
A2stringnãoQuantidade de grade posição 2.
A3stringnãoQuantidade de grade posição 3.
A4stringnãoQuantidade de grade posição 4.
A5stringnãoQuantidade de grade posição 5.
A6stringnãoQuantidade de grade posição 6.
A7stringnãoQuantidade de grade posição 7.
A8stringnãoQuantidade de grade posição 8.
A9stringnãoQuantidade de grade posição 9.
A10stringnãoQuantidade de grade posição 10.
A11stringnãoQuantidade de grade posição 11.
A12stringnãoQuantidade de grade posição 12.
A13stringnãoQuantidade de grade posição 13.
A14stringnãoQuantidade de grade posição 14.
A15stringnãoQuantidade de grade posição 15.
A16stringnãoQuantidade de grade posição 16.
A17stringnãoQuantidade de grade posição 17.
A18stringnãoQuantidade de grade posição 18.
A19stringnãoQuantidade de grade posição 19.
A20stringnãoQuantidade de grade posição 20.
A21stringnãoQuantidade de grade posição 21.
A22stringnãoQuantidade de grade posição 22.
A23stringnãoQuantidade de grade posição 23.
A24stringnãoQuantidade de grade posição 24.
A25stringnãoQuantidade de grade posição 25.
A26stringnãoQuantidade de grade posição 26.
A27stringnãoQuantidade de grade posição 27.
A28stringnãoQuantidade de grade posição 28.
A29stringnãoQuantidade de grade posição 29.
A30stringnãoQuantidade de grade posição 30.
A31stringnãoQuantidade de grade posição 31.
A32stringnãoQuantidade de grade posição 32.
A33stringnãoQuantidade de grade posição 33.
A34stringnãoQuantidade de grade posição 34.
A35stringnãoQuantidade de grade posição 35.
A36stringnãoQuantidade de grade posição 36.
A37stringnãoQuantidade de grade posição 37.
A38stringnãoQuantidade de grade posição 38.
A39stringnãoQuantidade de grade posição 39.
A40stringnãoQuantidade de grade posição 40.
A41stringnãoQuantidade de grade posição 41.
A42stringnãoQuantidade de grade posição 42.
A43stringnãoQuantidade de grade posição 43.
A44stringnãoQuantidade de grade posição 44.
A45stringnãoQuantidade de grade posição 45.
A46stringnãoQuantidade de grade posição 46.
A47stringnãoQuantidade de grade posição 47.
A48stringnãoQuantidade de grade posição 48.
CUSTO1stringnãoCusto 1.
CUSTO2stringnãoCusto 2.
CUSTO3stringnãoCusto 3.
CUSTO4stringnãoCusto 4.
CM_OPERACAOstringnãoCusto médio ou operação associada conforme origem.
DATA_PARA_TRANSFERENCIAstringnãoData e hora para transferência na linha do item.
 
Tratamento de Dados

Sobre o registro atual retornado de ESTOQUE_PROD_CONTAGEM anteslido do envioconteudo àna fila:

  • ITENSDDD, TELEFONE, DDD_CELULAR, CELULAR: passanormalizados acom conter remoção array de linhasnão obtidasdígitos dae consultamontagem ade entradas em ESTOQUE_PROD_CTG_AJUSTEcontatos paracom o mesmotipos NOME_CONTAGEM, preservando os campos NOME_CONTAGEMTELEFONE, PRODUTO, COR_PRODUTO, QTDE_AJUSTE, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31, A32, A33, A34, A35, A36, A37, A38, A39, A40, A41, A42, A43, A44, A45, A46, A47, A48, CUSTO1, CUSTO2, CUSTO3, CUSTO4, CM_OPERACAOCELULAR e DATA_PARA_TRANSFERENCIAEMAIL quando informados.
  • TIPO_LOGRADOURO, ENDERECO: concatenados para formar o logradouro completo; se o resultado exceder 250 caracteres, aplicado substr até 250.
  • COMPLEMENTO: se o comprimento exceder 250 caracteres, aplicado substr até 250.
  • CEP: somente dígitos e preenchimento à esquerda com zeros até tamanho 8.
  • NUMERO: somente dígitos no payload de endereço.
  • UF: se vazio ou com mais de 2 caracteres, usa regra condicionada a ESTRANGEIRO (incluindo uso de EX para estrangeiro).
  • CPF_CGC, RG_IE: documentos numéricos padronizados com zeros à esquerda conforme tipo físico ou jurídico; tipo derivado pelo tamanho numérico de CPF_CGC após normalização.
  • Validação pré-envio: para não estrangeiro com UF diferente de EX, exige IBGE preenchido; para qualquer registro, exige PAIS_BC preenchido (mensagens de erro específicas se ausentes).

Na fila, o processamento utiliza o conteúdo do registro como corpo enviado ao ILLI, sem reestruturação adicional de campos no código analisado além do conteúdo já montado na captura.

 
Integração com o ILLI

Chamada de integração com o ILLI:ILLI (via rotina de integração):

  • Chamada: Requisição HTTP (encapsulada pela rotina de envio ao ILLI).
  • Recurso: e3a6737d-ac74-4ed6-9668-e3921320c29f/ilx_ajuste_estoque/setAjuste/bibliotecas/48df1d4a-2a73-4afc-be75-a8104533cda0/ilx_pessoa/setCliente
  • Método HTTP: POST
  • CorpoCabeçalhos: os definidos internamente pela rotina de entrada:integração ILLI (não fixados neste arquivo).
  • Corpo: objeto ouJSON arraycom correspondenteos aocampos mapeados a partir do conteudo do registro da filafila, (cabeçalho da contagem +incluindo ITENSendereco).
  • ,
  • Processamento:contatos, envio do payloaddocumentos e leiturametadados dade resposta JSON com indicadores success e message.cadastro.

Exemplo

de corpo enviado (estrutura alinhada ao objeto montado no código; valores ilustrativos):

{
  "id": false,
  "codigo": "00000000000123",
  "nome": "Cliente Exemplo",
  "endereco": {
    "cep": "01310100",
    "referencia": "",
    "logradouro": "RUA EXEMPLO 100",
    "numero": "100",
    "complemento": "SALA 1",
    "bairro": "CENTRO",
    "cidade": "SAO PAULO",
    "uf": "SP",
    "pais": "BRASIL",
    "codigo_ibge": "3550308",
    "codigo_bacen": "1058"
  },
  "tipo_cliente": ["CLIENTE"],
  "filialCadastro": "FILIAL01",
  "genero": "M",
  "grupo": "CLIENTE VAREJO",
  "complemento": "OBS",
  "contatos": [
    { "tipo": "TELEFONE", "contato": "11999999999" }
  ],
  "situacao": "1",
  "data_nascimento": "1990-01-01 00:00:00",
  "data_cadastro": "2024-01-01 10:00:00",
  "data": "2024-01-02 08:00:00",
  "tipo": "FISICA",
  "cpf": "12345678901",
  "identidade": "1234567"
}

Tratamento de retorno

Ausência de resposta JSON:resposta: lança exceção indicando que não houve resposta;resposta JSON; situação final 4 na tabela da fila de integração.
Resposta semvazia de success e sem message: tratada como retorno não reconhecido (exceção), situação 4.
Sucesso: quando success não está vazio, situação 2; caso contrário situação 4 com mensagem em message quando existir.
Em exceção genérica, a mensagem é persistida; se a mensagem indicar trecho após prefixo de JSON não reconhecido, o retorno estruturado pode incluir error e data com o conteúdotrecho analisado.

Notificação

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

Endpoint (API)

O endpoint publicaprocessa o cadastro de cliente de varejo a bibliotecapartir parado instanciarcorpo dinamicamenteda asrequisição: classeso internas (por exemplo, capturador ou fila) via parâmetrofluxo de classeentrada é o array de parâmetros no padrãprocessamento principal, validado contra tipo e obrigatoriedade conforme o schema do serviço, com persistência em CLIENTES_VAREJO e regras de inclusão, atualização, filial e documento. O payload de entrada é um objeto JSON (ou equivalente) cujas chaves correspondem aos campos da plataforma.tabela Oao caminhofinal declaradoda subseção Estruturação de Dados; campos adicionais usados apenas no arquivofluxo dainterno biblioteca(CODIGO_CLIENTE, éTIPO_VAREJO, usadoOMS, comoentre baseoutros) dopodem recursoacompanhar HTTP.o mesmo corpo quando o chamador os informar.

 

Estruturação de Dados

ACampos invocaçadicionais tratados no fluxo interno de gravação segue (validação contratocomplementar e insert/update em CLIENTES_VAREJO): CODIGO_CLIENTE, TIPO_VAREJO, CADASTRAMENTO, DATA_PARA_TRANSFERENCIA, OMS, entre outros previstos no processamento de publicaçãopersistência.

de
biblioteca: corpo ou parâmetros conforme a plataforma para selecionar a classe alvo e a operação desejada.

  • Chamada: Requisição HTTP
  • Recurso: /bibliotecas/01a79ef5-24bc-4bdc-b797-512284913153/wosk_loja_ajuste_estoque1be199d8-98e8-4de7-a92c-e59c2f08edd6/wosk_loja_cliente (caminho declarado no arquivo PHP da biblioteca)
  • Método HTTP: POST

Exemplo de payload enviado para o endpoint (JSON):

{
  "key": "<API_KEY_OU_VAZIO>",
  "class"CLIENTE_VAREJO": "Monitor"Nome do Cliente",
  "method"FILIAL": "run"01",
  "params"PF_PJ": []true,
  "ESTRANGEIRO": false,
  "CPF_CGC": "12345678901",
  "ENDERECO": "Rua Exemplo",
  "UF": "SP",
  "CEP": "01310100"
}
internaacarregarvia Queue) quandoaplicável.
Contrato ilustrativo do payload enviado ao endpoint — validação dos nomes de chamada à bibliotecacampo
Campo Tipo Obrigatório Descrição
key string não ChaveIdentificador ou identificadorchave de API conforme exigência da plataforma de publicação do serviço.
classCLIENTE_VAREJO string (40) sim Nome dado classecliente.
FILIAL string fábrica(25)simNome ou código da bibliotecafilial.
ENDERECOstring (ex.:90) nãoEndereço sem o tipo de logradouro.
MonitorUF, string (2)nãoEstado (UF).
methodPF_PJ stringbool (1) variávelsim Método1 apessoa executarfísica, na2 instânciapessoa retornada, conforme contrato da plataforma.jurídica.
paramsRG_IE arraystring (19) não ParâmetrosRG (PF) ou IE (PJ).
CPF_CGCstring (19)nãoCPF ou CNPJ conforme o caso.
CIDADEstring (35)nãoMunicípio.
COMPLEMENTOstring (20)nãoComplemento do métodoendereço.
CEPstring (9)nãoCEP.
TELEFONEstring (10)nãoTelefone sem DDD.
ANIVERSARIOdatetime (19)nãoData de aniversário ou nascimento.
DDDstring (4)nãoDDD do telefone.
SEXOstring (1)nãoGênero.
OBSstring (200)nãoObservações.
EMAILstring (100)nãoE-mail.
BAIRROstring (35)nãoBairro.
STATUSnumber (1)não1 ativo, 2 cancelado.
PAISstring (40)nãoNome do país.
TIPO_LOGRADOUROstring (10)nãoTipo de logradouro.
NUMEROstring (10)nãoNúmero.
ESTRANGEIRObool (1)sim1 estrangeiro, 0 nacional.
DDD_CELULARstring (4)nãoDDD do celular.
CELULARstring (10)nãoCelular sem DDD.
 
Tratamento de Dados

ONo carregamentométodo dinâmicode instanciagravação ado classecadastro em(pré-insert/update e persistência):

  • CADASTRAMENTO, WOSK\LojaAjusteEstoque\DATA_PARA_TRANSFERENCIA: definidos com data/hora atual no início do processamento da requisição.
  • TIPO_VAREJO: se não existir na lista carregada de CLIENTE_VAR_TIPOS, forçado para CLIENTE VAREJO.
  • ESTRANGEIRO: se vazio, definido como 0; se UF conformefor EX, definido como 1.
  • SEXO: se vazio, removido do conjunto de parâmetros antes da gravação.
  • CEP: se informado e numericamente zero após avaliação, substituído por sentinela NULL() para o nomeinsert.
  • informado
  • CODIGO_CLIENTE: se vazio após normalização, preenchido com CPF_CGC ou, para estrangeiro, com RG_IE; validação doespecífica segmentode recebido;obrigatoriedade e tamanho aplicada em seguida.
  • Inclusão: verifica duplicidade de documento versus código para não estrangeiro; transformaçconverte FILIAL numérica para nome via FILIAIS; prefixa OBS com texto fixo de origem PDV; executa insert parametrizado em CLIENTES_VAREJO conforme colunas previstas para o cadastro.
  • Alteração: reaproveita CODIGO_CLIENTE, FILIAL, CADASTRAMENTO e TIPO_VAREJO do registro localizado; se OMS for diferente de 1, recalcula DATA_PARA_TRANSFERENCIA e aplica estratégia de mesclagem campo a campo conforme CADASTRAMENTO anterior antes do UPDATE; se OMS for 1, o bloco de atualização adicionalé ignorado.

Persistência no LINX

Chamada de persistência no banco LINX:

  • Chamada: Operação em banco (insert ou update parametrizado).
  • Tabelas: CLIENTES_VAREJO (principal); consultas auxiliares a CLIENTE_VAR_TIPOS e FILIAIS para listas e resolução de filial.
  • Processamento: transação com commit ao sucesso ou rollback em falha; erros encapsulados com prefixo CLIENTES_VAREJO: na mensagem.

Tratamento de retorno

Sucesso: retorno com Mensagem igual a OK e Mensagem Detalhada indicando registro com sucesso, além dos campos CODIGO_CLIENTE, CADASTRAMENTO e DATA_PARA_TRANSFERENCIA atualizados no array de resposta.
Falha de validação inicial: exceção com mensagens concatenadas dos erros de campo.
Falha na gravação: exceção com mensagem originada do banco ou regra de negócio nesta(incluindo camadaconflito alémde documento/código).

O endpoint não implementa envio de notificação de erros; o acompanhamento de falhas da resoluçintegração daem classe.fila é tratado na Fila de Processamento.

 


Fluxo do Processo

Diagrama sem nome.jpg


Critérios de Aceitação
reutilizado
Processo Subprocesso Descrição Situação esperada
Capturador Captura e enfileiramento Com estado apto e filtrosfiltro de datalidos,lido, deve ler ESTOQUE_PROD_CONTAGEMCLIENTES_VAREJO com ESTOQUE_AJUSTADO = '1', filiaisjoins de loja permitidasmunicípio e datapaís, mínimapaginar depelo transferência,limite enriquecer com linhas de ESTOQUE_PROD_CTG_AJUSTEconfigurado e gravar cada registro na fila de integração com chaveserviço NOME_CONTAGEM-FILIALLojaCliente e serviçochave LojaAjusteEstoqueCODIGO_CLIENTE. Registro pendente na fila com conteúdo completoalinhado à consulta e chaveposição consistente.de captura atualizada.
Capturador Captura por chavecódigo Para cada chaveCODIGO_CLIENTE no formato NOME_CONTAGEM-FILIAL,informado, deve consultar a contagemmesma projeção e reproduzirgravar o encaminhamento àna fila compreservando token preservadoexistente quando existir;houver.Registros reenfileirados com chave inválidaconsistente interrompee comtoken exceção. Chavequando válida gera atualização na fila; chave inválida gera erro imediato.aplicável.
Fila de Processamento Integração ILLI Ao processar registro pendente, deve enviarmontar o conteudoJSON, aochamar o recurso ilx_ajuste_estoque/setAjuste/bibliotecas/48df1d4a-2a73-4afc-be75-a8104533cda0/ilx_pessoa/setCliente, interpretar o retorno quanto à situação de sucesso ou erro com mensagem (success, message) e persistir na tabela da fila de integração a situação final (códigos 2 ou 4)4 conforme o caso), a mensagem retornada e o tempo de processamento. Fila atualizada com situação final, mensagemfinal e auditoria de requisição coerentes com o retorno do ILLI.
Endpoint (API) PublicaçãoCadastro da bibliotecaPDV Ao receber requisiçãopayloadlida para o caminho da biblioteca,lido, deve resolverinserir ou atualizar CLIENTES_VAREJO conforme regras de documento, filial e OMS, retornando Mensagem OK em sucesso.Registro gravado no LINX e resposta com código e datas coerentes com a classe solicitada e permitir a execução dos métodos expostos (Monitor, Queue) conforme contrato da plataforma.Instância obtida sem erro de reflexão e operação encaminhada conforme parâmetros.o.