Ir para o conteúdo principal

ProtheusClienteFull (STATUS: PARCIAL)

Documentação Técnica

Nome do cliente OSKLEN
Nome do projeto INTEGRAÇÃO LINX → PROTHEUS
Biblioteca wosk_protheus_cliente_full
Token da Biblioteca d1444b58-fc25-4211-845d-a12be3cc09b7
URL de Produção
https://isnapp.illimitar.pro/bibliotecas/d1444b58-fc25-4211-845d-a12be3cc09b7/wosk_protheus_cliente_full
URL de Homologação https://hmg-isnapp.illimitar.pro/bibliotecas/d1444b58-fc25-4211-845d-a12be3cc09b7/wosk_protheus_cliente_full
Data 24/02/2026

Sumário


    Histórico de Versões

    Data Versão Modificado por Descrição da Mudança
    24/02/2026 1.0 Maykon/Gustavo Criação da documentação do processo de integração de cliente (Full).

    Descrição Geral dos Processos

    Este processo realiza a integração completa de cadastros de clientes, garantindo que os dados estejam consistentes antes do envio e que o acompanhamento do processamento seja rastreável.

    A captura de registros é feita de forma periódica (cron), a partir de uma visão de dados disponível no ambiente de origem, e os itens capturados são encaminhados para processamento assíncrono por fila.

    Em seguida, a fila processa cada item, aplica ajustes de padronização de texto, envia ao destino e atualiza o status do processamento, permitindo reprocessamento, auditoria e notificação quando houver falhas.

    Monitor

    Descrição Conceitual

    Descrição do fluxo
    • O Monitor é acionado por cron e busca os dados de clientes a partir da visão de origem.
    • Para cada registro encontrado, é montada uma chave única do cliente e o item é enfileirado para processamento assíncrono (Queue), com status inicial.
    • A data de transferência do registro é utilizada como base para agendamento/ordenação do processamento, caracterizando uso do Conceito Cronológico.
    Entrada de dados (query)

    A entrada é realizada via query sobre a visão WOSK_SERVICO_ENVIA_PROTHEUS_CLIENTES_FULL. O WHERE é construído dinamicamente de acordo com a chave recebida.

    SELECT
        A1_COD,
        A1_LOJA,
        CGC_CPF,
        NOME,
        PESSOA,
        NOME_REDUZ,
        ENDERECO,
        BAIRRO,
        COMPLEMENTO,
        TIPO,
        UF,
        COD_MUNICIPIO_IBGE,
        CEP,
        DDI,
        DDD,
        TELEFONE,
        CONTATO,
        A1_PFISICA,
        A1_INSCR,
        INSC_MUNICIPAL,
        DATA_NASC,
        EMAIL,
        COD_PAIS_SISCOMEX,
        COD_PAIS_BC,
        A1_CONTA,
        A1_CONTRIB,
        A1_TPESSOA,
        A1_SUFRAMA,
        A1_CALCSUF,
        A1_CODMUN,
        STATUS,
        DATA_PARA_TRANSFERENCIA
    FROM
        WOSK_SERVICO_ENVIA_PROTHEUS_CLIENTES_FULL
    WHERE
        A1_LOJA = '<A1_LOJA>'
        AND A1_COD = '<A1_COD>';
    Reestruturação e alteração de dados
    • Chave do cliente: composta no formato A1_LOJA-A1_COD para identificação única no processamento assíncrono.
    • Data de transferência: convertida para formato Y-m-d H:i:s e utilizada como referência de agendamento/ordenação na fila (ver Conceito Cronológico).
    Operações com dados (Banco de Dados)
    • Leitura: visão WOSK_SERVICO_ENVIA_PROTHEUS_CLIENTES_FULL.
    • Persistência da fila: inserção do item para processamento na tabela wosk_queue (banco do integrador).
    • Controle do Monitor: persistência de posição/continuidade na tabela wosk_monitor (banco do integrador), permitindo retomada do processamento.
    Resultado do processamento

    Ao final, o registro fica disponível na fila para processamento assíncrono, iniciado com status de aguardando integração e data de referência para ordem de processamento.

    Queue

    Descrição Conceitual

    Descrição do fluxo
    • A Queue é acionada por cron e consome itens pendentes da fila.
    • O item é marcado como em processamento, e o conteúdo é preparado para envio ao destino.
    • Após o envio, a fila é atualizada com o resultado: sucesso ou erro, incluindo mensagem e detalhes de retorno.
    • Quando há erro e o mesmo cliente já foi capturado no fluxo padrão, o registro do fluxo Full pode ser descartado para evitar duplicidade.
    Reestruturação e alteração de dados
    • Padronização de texto: remoção de acentos em campos de nome/endereço/bairro/contato e eliminação do caractere | em nomes, para evitar inconsistências no destino.
    • Código de país: normalizado para sempre possuir 5 dígitos (com zeros à esquerda quando necessário).
    • Identificação do tenant: envio de cabeçalho de identificação do ambiente/tenant junto à requisição.
    Operações com dados (Banco de Dados)
    • Leitura: consumo de itens da tabela wosk_queue (banco do integrador).
    • Atualização: gravação do retorno, mensagem e status final na tabela wosk_queue.
    • Log de falhas: quando aplicável, registro de detalhes de erro de banco na tabela wosk_queue_log.
    Resultado do processamento
    • Sucesso: o cliente é considerado integrado e o item é finalizado com status de sucesso.
    • Erro: o item é finalizado com status de erro e mensagem explicativa; o processo pode acionar notificação e/ou evitar duplicidade com o fluxo padrão.

    Fluxo do Processo

    Diagrama sem nome.jpg


    Critérios de Aceitação

    Processo Subprocesso Descrição Situação esperada
    Monitor Captura Quando acionado por cron, deve obter o registro do cliente na visão de origem e gerar uma chave única no formato A1_LOJA-A1_COD. Registro identificado e pronto para encaminhamento.
    Monitor Enfileiramento O registro capturado deve ser enfileirado para processamento assíncrono, com status inicial e agendamento baseado em DATA_PARA_TRANSFERENCIA (conceito cronológico). Item persistido em wosk_queue e ordenado/agendado conforme a data.
    Queue Processamento Ao consumir o item, deve aplicar padronização de texto e enviar ao destino; em seguida, deve atualizar o resultado na fila. Fila atualizada com status de sucesso ou erro e mensagem correspondente, mantendo rastreabilidade.
    Queue Controle de duplicidade Quando houver falha no envio e o mesmo cliente já existir no fluxo padrão, o registro do fluxo Full deve ser descartado para evitar processamento duplicado. Sem duplicidade de registros na fila para o mesmo cliente.