Propriedades Extras
O mecanismo de Propriedades Extras do RUB permite estender as entidades nativas do sistema com atributos e metadados customizados, sem a necessidade de alterações no esquema fixo do banco de dados relacional ou no código-fonte da aplicação.
Através desse recurso, informações comerciais, operacionais, fiscais e logísticas específicas de cada rede varejista (como indicação de item de alta relevância, curva ABC, temperatura de conservação, tipo de picking ou e-mail de fornecedor) são integradas, validadas e propagadas tanto para as telas do portal web quanto para os coletores de dados móveis no chão de loja.
Flexibilidade sem Acoplamento:
As propriedades extras funcionam como metadados dinâmicos fortemente tipados. Uma vez definida a propriedade no RUB, os
diferentes mecanismos de integração — seja via API REST (payloads JSON ou arquivos CSV massivos) ou por banco de
dados
(tabelas intermediárias de interface) — passam a aceitar, validar e persistir seus valores automaticamente.
Como Funciona o Mecanismo
O funcionamento das propriedades extras é dividido em duas etapas fundamentais:
- Definição do Metadado: O RUB precisa conhecer previamente a existência da propriedade, em qual entidade ela se aplica, qual o seu tipo de dado e onde ela deve ser exibida (portal web, relatórios ou dispositivos móveis).
- Atribuição dos Valores: Durante a integração de dados (via API REST ou importação em lote), os sistemas de retaguarda (ERP) enviam os valores correspondentes vinculados a cada registro da entidade.
graph TD
subgraph Definição do Metadado
ADM["Administração / API de Carga<br/>(Cadastro da Propriedade)"] -->|Define entidade, tipo e visibilidade| RUB_PROP["MetaProperty no RUB"]
end
subgraph Integração Operacional
ERP["ERP / Retaguarda"] -->|" properties: { chave: valor } "| INTF["Endpoints de Integração<br/>(Produto, Fornecedor, etc.)"]
INTF -->|Validação de Tipo e Persistência| DB["Tabelas de Propriedade<br/>(ex: PRODUTO_PROPRIEDADE)"]
end
RUB_PROP -.->|Regras e Tipagem| INTF
DB --> WEB["Portal Web / Relatórios<br/>(exibe_list)"]
DB --> MOB["Coletores Móveis<br/>(exibe_mobile)"]
DB --> REGRAS["Motores de Prioridade<br/>e Regras de Tarefa"]
Tipos de Propriedades Suportados
Cada propriedade extra possui um tipo de dado específico. O RUB valida a conformidade dos dados recebidos durante a integração antes de persistir o valor na coluna correspondente da tabela de propriedades:
| Tipo | Código Interno | Tipo Armazenado | Descrição e Regras de Validação | Formato de Exemplo |
|---|---|---|---|---|
TEXT | 0 | String (TEXTO) | Texto alfanumérico livre. Aceita qualquer cadeia de caracteres. | "SETOR_REFRIGERADOS" |
DECIMAL | 1 | Numérico (VALOR) | Número fracionário/ponto flutuante. Aceita formatação numérica padrão ou delimitador monetário. | "12.50" ou "12,50" |
INTEGER | 2 | Inteiro (INTEIRO) | Número inteiro positivo ou negativo. Utilizado para contadores, códigos e agrupamentos numéricos. | "42" |
BOOLEAN | 3 | Booleano (BOOLEAN) | Valor booleano (verdadeiro/falso). Aceita "true", "false", "1", "0", "sim"/"nao", "yes"/"no". | "true" ou "1" |
TIMESTAMP | 4 | Data e Hora (DATA_HORA) | Carimbo de data e hora no formato estrito yyyy-MM-dd HH:mm:ss. | "2026-09-04 14:30:00" |
ESTOQUE | 5 | Inteiro (INTEIRO) | Quantidade de estoque em unidades inteiras. Validação numérica de inteiros. | "150" |
IMAGEM | 6 | String (TEXTO) | URL ou caminho relativo da imagem/foto associada ao registro. | "https://cdn.exemplo.com/img.jpg" |
MOEDA | 7 | Numérico (VALOR) | Valor financeiro monetário. Tratado e exibido com máscaras monetárias da aplicação. | "199.90" |
Suporte nos Mecanismos de Integração
O suporte a propriedades extras não é restrito às integrações via API REST (seja em payloads JSON 1:1 ou via arquivos CSV massivos): o mecanismo de integração por banco de dados também respeita integralmente as propriedades extras.
Independentemente de os dados serem alimentados por chamadas REST ou por tabelas intermediárias de banco de dados do sistema de integração, o modelo conceitual de propriedades extras permanece idêntico, validando a tipagem definida e propagando os valores atribuídos para o portal web, coletores móveis e motores de regras.
Impacto Operacional no RUB
As propriedades extras cadastradas não servem apenas para armazenamento passivo; elas afetam ativamente o comportamento da aplicação:
- Exibição em Listas Web (
Exibe nas Listas): A propriedade torna-se uma coluna configurável em telas de consulta e relatórios nas telas web do RUB, permitindo ordenação e visualização direta pelos operadores. - Exibição no Coletor Móvel (
Exibe no Mobile): O dado é transmitido para os dispositivos portáteis dos operadores em campo, facilitando a tomada de decisão no chão de loja durante auditorias e conferências. - Controle de Acesso por Permissão (
Permissão): O RUB pode gerar automaticamente papéis de segurança específicos no controle de acesso, restringindo a visualização ou edição da propriedade apenas a usuários autorizados. - Critérios de Prioridade Operacional: Motores de regras internas (como
CriterioPrioridadePropriedadeExtra) utilizam valores booleanos ou numéricos para alterar a prioridade na fila de reposição e auditoria de gôndola.
Cenários de Cadastro
1. Cadastro da Definição da Propriedade (Metadado)
Antes de enviar valores nas entidades integradas, a propriedade deve ser registrada no RUB. Isso pode ser feito de duas formas:
A. Pelo Portal Web do RUB
Acesse o menu Configuração > Avançado > Propriedades, selecione a entidade desejada e informe:
- Identificador (Propriedade): Nome do campo técnico (ex.:
curva_abc,temperatura_min). Sempre convertido para letras minúsculas. - Nome de Exibição: Título apresentado nas telas (ex.:
Curva ABC). - Tipo de Dado: Selecione um dos tipos suportados (
Texto,Decimal,Inteiro,Booleano, etc.). - Exibir na Lista / Mobile: Marque para exibir nas tabelas web e/ou nos coletores portáteis.
- Sobrescrever na Interface: Permite que a integração atualize o valor quando enviado.
2. Associação de Valores via API REST (JSON 1:1)
Nas integrações via API REST com payload JSON, os valores das propriedades extras são enviados dentro do objeto
properties (dicionário de chave/valor string) no schema da entidade correspondente:
{
"code": "1001",
"properties": {
"campo_customizado_1": "Valor Exemplo",
"campo_customizado_2": "true"
}
}
3. Associação de Valores via CSV Massivo
Na importação em lote via arquivos CSV, colunas não pertencentes ao catálogo padrão de campos da entidade são interpretadas como propriedades extras, desde que a propriedade já esteja cadastrada na entidade:
"code";"nome_padrao";"campo_customizado_1";"campo_customizado_2"
"1001";"Registro Exemplo";"Valor Exemplo";"true"
Regras de Sobrescrita e Sincronização
Ao integrar dados com propriedades extras, atente-se às regras do protocolo HTTP utilizado:
- Método
POST(Incremental): Insere ou atualiza os campos e propriedades enviados no payload. Quaisquer propriedades já existentes no registro que não forem mencionadas na requisição permanecem intactas. - Método
PUT(Sincronização Total): O registro é sincronizado estritamente com o payload enviado. Quaisquer propriedades extras previamente gravadas que forem omitidas na requisição serão removidas. - Flag
sobrescreve: Quando a definição da propriedade extra estiver configurada comsobrescreve = false, as rotinas de interface de carga respeitam a trava manual e não substituem o valor caso ele tenha sido manipulado manualmente no sistema.