01. DADOS GERAIS
| Produto: | TOTVS Distribuição e Varejo |
|---|---|
| Linha de Produto: | Linha Winthor |
| Segmento: | Distribuição |
| Módulo: | 8 - Ferramentas do sistema |
| Função: | 801 - Autorização de serviços WEB |
| Requisito/Story/Issue: | DDWMISSI-3762 |
02. SITUAÇÃO/REQUISITO
Descrição do Cenário Atual
Descrição do Cenário Atual Identificamos que vendas realizadas no PDV Omni não estão sendo integradas ao Winthor devido a uma rejeição no WSH, que retorna a mensagem: "Matrícula do funcionário é obrigatória".
A investigação técnica apontou que o erro ocorre mesmo quando a matrícula parece estar presente. O problema reside na validação da API:
Se a tag
CodFuncCxno cabeçalho contém um valor que não possui vínculo direto com umCODUSURna tabelaPCEMPR;Se o parâmetro de fallback
CODFUNCCXINTEGRACAOPDV(rotina 132) estiver nulo ou zerado;Se a tag
produtos.codfuncxestiver ausente ou inválida.
Atualmente, o sistema ignora a tag produtos.codusur (código do vendedor), que muitas vezes é a única informação válida enviada no JSON, resultando no travamento desnecessário da integração.
03. SOLUÇÃO
Ajuste
(Validação via Fallback CodUsur) Para garantir a fluidez da integração, foi implementada uma estrutura de "cascata" (fallback) mais robusta para a identificação da matrícula do funcionário. A API agora tenta localizar um responsável válido seguindo esta ordem de prioridade:
Cabeçalho: Valida o
codFuncCxenviado na tabelaPCEMPR.Parâmetro (Fallback 1): Caso o cabeçalho seja inválido, busca o valor definido no parâmetro
CODFUNCCXINTEGRACAOPDV.Item - CodFuncCx (Fallback 2): Se o parâmetro for nulo, tenta validar o
codFuncCxdentro da tag de produtos.Item - CodUsur (Fallback 3 - Novo): Se todas as opções anteriores falharem, o sistema agora valida o
codUsurdo produto naPCEMPRe busca a matrícula vinculada a este usuário.
Critérios de Aceite
A venda deve ser processada com sucesso se um
codUsurválido for enviado no item, mesmo que ocodFuncCxdo cabeçalho seja inválido ou o parâmetro da 132 esteja zerado.O sistema deve priorizar o funcionário do cabeçalho caso ele seja válido (manutenção da regra de prioridade).
O campo de funcionário nas tabelas de venda deve refletir a matrícula encontrada via usuário.
Benefícios Esperados
Redução drástica de rejeições de vendas por erro de matrícula inexistente.
Maior inteligência da API em interpretar os dados enviados pelo PDV Omni (usando o
codUsurcomo âncora).Eliminação de intervenções manuais para ajuste de parâmetros quando o dado já existe no JSON da venda.
Na rotina 801 atualizar serviço winthor-integracao-varejo para uma das versões abaixo ou superior:
- 1.37.17.89
Exemplo de Response com os dados corretos:
Status code = 200 OK
{
"sucesso": true,
"observacao": [
"Operação integrada com sucesso!"
],
"idWinthor": 0
}
Exemplo de Response com os dados inválidos:
Status code = 400Bad Request
{
"sucesso": false,
"observacao": [
"Matricula do funcionario é obrigatória"
],
"idWinthor": 0
}
04. DEMAIS INFORMAÇÕES
As versões estarão disponíveis para download no CCW. Mantenha suas rotinas sempre atualizadas!IMPORTANTE!