Política de campos de pedido
Este artigo tem como objetivo explicar a Política de campos do pedido do Demander.
Sobre a Política de campos do pedido
Sección titulada «Sobre a Política de campos do pedido»A Política de campos do pedido permite controlar o comportamento de campos do pedido de acordo com o contexto comercial (por exemplo: vendedor, cliente, tipo de pedido etc.).
Para cada campo suportado, é possível definir:
- Visibilidade (mostrar/ocultar).
- Obrigatoriedade (exigir preenchimento).
- Bloqueio (mostrar sem permitir alteração).
- Filtro de opções (permitir/bloquear valores).
- Seleção automática de valor (quando aplicável).
Escopo e objetivo
Sección titulada «Escopo e objetivo»O objetivo é atender cenários onde a empresa precisa limitar o uso e/ou as opções de campos do pedido por contexto(por exemplo: um contexto pode ver um campo com lista filtrada, outro pode exigir preenchimento, outro pode ocultar o campo).
A solução foi concebida de forma extensível: novos campos podem ser adicionados mantendo o mesmo contrato do jsonRegras e sem remodelagem de base. Para consultar quais campos estão disponíveis no momento, veja a seção Campos suportados e exemplos.
Campos de configuração
Sección titulada «Campos de configuração»A configuração da política envolve campos de identificação, filtros de contexto e o JSON de regras. Esta seção foi baseada nos campos previstos na integração da tabela 280 - PoliticaCamposPedido.
Identificação e status
Sección titulada «Identificação e status»- codigo: identifica a política no contexto do cliente.
- descricao: descrição da política.
- ativo: define se a política pode ser aplicada (0 = inativo, 1 = ativo).
- prioridade: critério de desempate entre políticas aplicáveis (menor valor indica maior prioridade).
Filtros de contexto
Sección titulada «Filtros de contexto»Os filtros abaixo são opcionais. Quando preenchidos, restringem o uso da política ao contexto correspondente (e aumentam a especificidade).
- codVendedor: filtro por vendedor.
- codCliente: filtro por cliente.
- codListaPreco: filtro por lista de preço.
- codTipoPedido: filtro por tipo de pedido.
- codFormaPagamento: filtro por forma de pagamento.
- codCondicaoPagamento: filtro por condição de pagamento.
- codTipoFrete: filtro por tipo de frete.
- codTipoDesconto: filtro por tipo de desconto.
- codSegmento: filtro por segmento.
- codFilial: filtro por filial.
- codTransportadora: filtro por transportadora.
- codRedespacho: filtro por redespacho.
- codDivisaoVendas: filtro por divisão de vendas.
Exemplos de filtrosExemplo 1: política aplicável somente quando codVendedor,codCliente e codDivisaoVendas coincidirem.
- prioridade= 1
- codVendedor= 45
- codCliente= 1001
- codDivisaoVendas= DV01
Neste caso, a política só deve ser considerada aplicável quando o pedido estiver no contexto do vendedor 45, do cliente 1001 e da divisão DV01 ao mesmo tempo. Se qualquer um desses valores for diferente, a política não se aplica.
Exemplo 2: política aplicável quando codVendedor e codDivisaoVendas coincidirem, independente do cliente.
- prioridade= 5
- codVendedor= 45
- codDivisaoVendas= DV01
Neste caso, a política se aplica para qualquer cliente, desde que o pedido esteja no contexto do vendedor 45 e da divisão DV01.
Em uma situação onde existirem ambas as políticas (Exemplo 1 e Exemplo 2) aplicáveis, o sistema deve preferir a mais específica (Exemplo 1) por que a prioridade dela é menor (1) indicando que deve ser aplicada primeiro.
Regras (jsonRegras)
Sección titulada «Regras (jsonRegras)»- jsonRegras: JSON com as regras dinâmicas dos campos do pedido. O contrato está descrito na seção Contrato do JSON das regras.
Contrato do JSON das regras
Sección titulada «Contrato do JSON das regras»Estrutura geral
Sección titulada «Estrutura geral»O campo jsonRegras armazena um JSON com o comportamento dos campos:
{ “campos”: { “nomeCampo”: { “obrigatoriedade”: (“VISIVEL”,“OBRIGATORIO”,“BLOQUEADO”,“OCULTO”), -> comportamento do campo nos dados do pedido “filtro”: { “tipo”: (“PERMITIR”,“BLOQUEAR”) “valores”: [“1”, “2”, “3”] -> Valores que estarão disponiveis/bloqueados conforme “tipo” }, “selecionado”: “2” -> Valor que será selecionado automaticamente ou enviar null para não selecionar automaticamente. } } }
Comportamento
- VISIVEL: mantém o campo disponível para uso.
- OBRIGATORIO: exige preenchimento do campo.
- BLOQUEADO: não permite alteração no campo.
- OCULTO: oculta o campo.
- PERMITIR: exibe para seleção somente as opções listadas em valores.
- BLOQUEAR: oculta da seleção as opções listadas em valores.
- selecionado: o valor será selecionado automaticamente quando a regra for aplicada.
Campos suportados e exemplos
Sección titulada «Campos suportados e exemplos»Esta seção concentra os campos que possuem interpretação no aplicativo e exemplos de uso. Ao adicionar novos campos, a manutenção da documentação tende a ficar restrita a esta seção.
Campo: Divisão de vendas (divisaoVendas)
- Permite controlar visibilidade, obrigatoriedade, bloqueio, filtro de opções e seleção automática do valor.
Exemplo de jsonRegras para divisaoVendas:
{ “campos”: { “divisaoVendas”: { “obrigatoriedade”: “VISIVEL”, “filtro”: { “tipo”: “PERMITIR”, “valores”: [“1”, “2”, “3”] }, “selecionado”: “2” } } }
Como o sistema escolhe a política (prioridade e especificidade)
Sección titulada «Como o sistema escolhe a política (prioridade e especificidade)»Quando existir mais de uma política aplicável, deve prevalecer a regra mais adequada ao contexto. A lógica esperada de seleção é:
- Considerar somente políticas ativas.
- Uma política é aplicável quando todos os filtros preenchidos nela coincidem com os valores do cenário do pedido.
- Campos de filtro não preenchidos na política são considerados “indiferentes” (política mais genérica).
- Ordenação recomendada para desempate:prioridade ASC(menor valor indica maior prioridade), depois especificidade maior número de filtros aplicados, depois id DESC.
- Retornar/aplicar apenas a melhor política(a primeira após a ordenação).
Cenários de exemplo
Sección titulada «Cenários de exemplo»- Cenário 1: Campo visível e com lista permitida (apenas 1, 2 e 3).
- Quando a política for aplicável ao contexto do pedido, o usuário verá somente essas opções no campo.
- Cenário 2: Seleção automática.
- Se selecionado estiver presente na lista final após o filtro, o sistema deve preencher automaticamente o campo com esse código.
- Cenário 3: Campo oculto para um contexto específico.
- Quando a política definir OCULTO, o campo deve deixar de ser exibido e o valor atual deve ser removido do pedido.
Dúvidas frequentes
Sección titulada «Dúvidas frequentes»Quais campos podem ser controlados?
Sección titulada «Quais campos podem ser controlados?»- Os campos com interpretação no aplicativo estão listados em Campos suportados e exemplos.
Como fazer a integração desta política?
Sección titulada «Como fazer a integração desta política?»- Integração da tabela 280 - PoliticaCamposPedido.
Como configurar no Demander Web?
Sección titulada «Como configurar no Demander Web?»-
- Acesse o cadastro Política de campos do pedido.
-
- Preencha Código,Descrição,Empresa (idClienteRetta),Ativo e Prioridade.
-
- Configure os filtros de contexto (por exemplo: vendedor, cliente, tipo de pedido etc.). Quanto mais filtros preenchidos, mais específica é a política.
-
- No campo JSON das regras, informe o jsonRegras seguindo o contrato oficial.
- Para detalhes do significado de cada campo, consulte a seção Campos de configuração.
-
- Salve a política e sincronize os dados para que os aplicativos e integrações recebam a configuração.