Telescope (core)
Padronização dos nomes das regras de negócio
ADS.FAQ-23290
O uso de uma padrão nos nomes das regras de negócio auxilia no desenvolvimento facilitando a identificação dos objetivos de cada regra e facilitando o entendimento dos desenvolvedores. O nome da regra irá gerar um método no código. Os nomes das regras de negócio devem:
- Começar com um verbo no infinitivo (calcular, validar, filtrar, etc.)
- Não conter artigos, conjunções e preposições (de, do, para, etc.)
- Ser clara o suficiente
- Ser curta
- Não repetir o que já faz parte do contexto ou que é óbvio.
Segue abaixo o padrão sugerido:
AJUSTAR_AUTOCOMPLETE_X
Regra utilizada para ajustar a forma com que o sistema irá autocompletar o campo "X". Esta regra é utilizada quando se deseja, por exemplo, filtrar o autocomplete com os dados que estão em outro campo.
Eventos:
Maiores detalhes podem ser optidos em Como customizar um autocomplete dinamicamente por regra de negócio?.
AJUSTAR_X - Ajustar as características de X
Método que ajusta características de um campo, tais como, visibilidade, editabilidade, sufixos, prefixos, labels, cores, etc.
Este tipo de regra é normalmente chamado pelos eventos:
- PRE_DISPLAY da INSERT
- PRE_RECORD da UPDATE
E caso o ajuste seja dependente de algum campo, também são disparado nos eventos
- ON_CHANGE [CAMPOS] INSERT
- ON_CHANGE [CAMPOS] UPDATE
AJUSTAR_CAMPOS_CFE_X - Ajustar campos conforme X
Métodos que ajustam a visibilidade, editabilidade, obrigatoriedade, labels, sufixo, prefixo, etc de vários campos conforme uma condição.
Este tipo de método normalmente é chamado pelos eventos:
- PRE_DISPLAY da INSERT
- PRE_RECORD da UPDATE
- ON_CHANGE [CAMPOS] INSERT
- ON_CHANGE [CAMPOS] UPDATE
Exemplos:
AJUSTAR_CAMPOS_CFE_TIPO_PEDIDO - Ajustar campos conforme o tipo de pedido
Muitas vezes, a implementação deste regra será simplesmente a chamada de várias regras tipo AJUSTAR_X, cada uma ajustando um campo específico conforme a condição.
ALERTAR_X
Regra que por objetivo gerar um alerta para o usuário.
Ex:
ATUALIZAR_X
Regra que atualiza alguma informação em outra entidade.
Exemplos:
- ATUALIZAR_TOTAIS_PEDIDO
- ATUALIZAR_SITUACAO_ITENS
APRESENTAR_X
Regra utilizada quando uma condição especial exige a apresentação de uma mensagem especial para o usuário. Não se deve utilizar regras com esta nomenclatura para campos normais (mesmo que calculados) do contexto. Nestes casos, prefira regras CALCULAR...
A mensagem pode ser apresentada de inúmeras formas:
- Através de um campo inserido dentro do formulário
- Através de um bloco de advertência ou erro no topo da tela
- Através de um diálogo modal
A regra deve ser chamada através dos eventos:
- PRE_DISPLAY
- PRE_RECORD
- POS_DISPLAY
- POS_RECORD
Exemplos:
BLOQUEAR_X
Regra que bloqueia o usuário de fazer determinadas coisas baseado em algum critério.
Exemplos:
- BLOQUEAR_TRIBUTACOES_NAO_PERMITIDAS
- BLOQUEAR_ORDENACOES
- BLOQUEAR_EDICAO_TITULOS
CALCULAR_X - Calcular o valor para X
Método que calcula o valor de um campo. Apesar do nome sugerir um número, pode ser de qualquer tipo: número, data, texto, etc.
Este tipo de regra é normalmente chamado pelos eventos:
- PRE_DISPLAY da INSERT
- PRE_RECORD da UPDATE
E caso o valor seja dependente de algum campo, também são disparadas nos eventos
- ON_CHANGE [CAMPOS] INSERT
- ON_CHANGE [CAMPOS] UPDATE
Em determinados casos, esta regra também pode ajustar características do campo, tais como visibilidade, editabilidade e opções.
Quando conveniente, este tipo de regra também pode calcular mais do que um campo. Isso deve ser realizado apenas quando os campos estão relacionados entre si e podem ser calculados juntos e nos mesmos eventos. Isso pode ser importante em casos de ganho de performance e inteligibilidade de código.
FILTRAR_X - Filtrar X
Regra que adiciona algum tipo de filtro à query que não é gerado automaticamente através de itens da entidade base.
Este tipo de regra é normalmente utilizado para situações como filtros de elementos indiretos definidos por entidades (1-N) informados através de itens UNBOUND_CUSTOM.
Evento:
LER_X
Método utilizado para preencher um campo unbound "X" com informações persistidas em outras entidades e que devam passar a ideia de como se fosse um campo comum da mesma. Quando o campo "X" é editável, este método vem acompanhado de um método SALVAR_X.
Exemplos:
- LER_DESTINATARIOS
- LER_ENDERECOS
- LER_ESTABELECIMENTOS
LIMPAR_FILTROS
Método que limpa os filtros de uma pesquisa quando é informado algum elemento que elimine a razão de existir os demais filtros. Normalmente isso ocorre quando se informa uma chave única como filtro. Neste caso, é comum um código nos seguintes moldes:
clearQueryFilters(qPedido, qNumeroDocumento);
PESQUISAR_X
Este tipo de regra é utilizado quando uma determinada informação deve ser pesquisada e algum tipo de ação deve ser tomado em função desta pesquisa. Normalmente as ações são ajustar de determinados campos de acordo com o resultado. Esta regra é quase igual ao AJUSTAR_CAMPOS_CFE_X. A diferença é que este regra pode envolver uma pesquisa mais complexa sobre a informação.
Este tipo de método normalmente é chamado pelos eventos:
- PRE_DISPLAY da INSERT
- PRE_RECORD da UPDATE
- ON_CHANGE [CAMPOS] INSERT
- ON_CHANGE [CAMPOS] UPDATE
Exemplos:
- BUSCAR_CEP - pode envolver um web-service para buscar dados do CEP informado
- BUSCAR_CPF
- etc.
POPULAR_X - Popular opções para X
Método que popula as opções disponíveis para um determinado campo (tipo OPCAO, SELECTION_CHECK, etc).
Este tipo de método é normalmente chamado pelos eventos:
- PRE_DISPLAY da INSERT
- PRE_RECORD da UPDATE
E caso as opções sejam dependentes de algum campo, também são disparadas nos eventos
- ON_CHANGE [CAMPOS] INSERT
- ON_CHANGE [CAMPOS] UPDATE
Em determinadas situações, este tipo de regra pode também sugerir um valor para o campo (em especial quando o valor atual não faz parte da nova lista de opções).
É muito importante documentar, na descrição do campo, como ele é populado de forma que o usuário final possa entender qual o critério utilizado na formação das opções disponíveis.
SALVAR_X
Regra utilizada para persistir alguma informação fora da entidade base. É comum quando existe um campo UNBOUD que apresenta informações que deverão ser persistidas em outras entidades. Muito comum quando temos entidades associativas representadas em campos tipo SELECTION_CHECK, SELECTION_BOX, etc.
Neste caso "X" é o nome de um ou mais campos.
Normalmente, a existência de um método SALVAR_X vem acompanhado de um método LER_X.
Exemplos:
- SALVAR_ESTABELECIMENTOS (de um tipo de pedido, por exemplo)
- SALVAR_PARTICIPANTES
- SALVAR_CARACTERISTICAS
- etc.
SUGERIR_X - Sugerir X
Regra que sugere um valor para um ou mais campos da interface. Esta regra é normalmente disparada nos eventos:
E caso as opções sejam dependentes de algum campo, também são disparadas nos eventos
- ON_CHANGE [CAMPOS] INSERT
- ON_CHANGE [CAMPOS] UPDATE
Note que este tipo de regra não impõe o valor. Ela apenas sugere um valor que pode ser alterado pelo usuário.
VALIDAR_X - Validar X
Regra que verifica se um valor ou uma combinação de valores é permitida. Este tipo de regra deve ser chamada em eventos como:
- PRE_INSERT
- PRE_UPDATE
- PRE_DELETE
Estas regras também podem ser utilizadas de forma interativa enquanto o usuário informa os campos na interface. Nestes casos, a implementação da regra deve registrar ou limpar) mensagens de erro nos campos que possuem valores inválidos.
Exemplos:
- VALIDAR_PRECO
- VALIDAR_PRODUTO
VERIFICAR_X
Este tipo de regra verifica uma determinada situação e dependendo do resultado, toma uma ação.
Note que as regras tipo VALIDAR, geram mensagens de erro, evitando situações que não são permitidas.
Exemplos:
- VERIFICAR_CADASTROS
- VERIFICAR_CONEXAO
- VERIFICAR_EXISTENCIA_ORDENS_SERVICO_VEICULO
REMOVER_X
Regra utilizada para excluir alguma ação específica de acordo com alguma condição. Em geral, a mesma regra será executada em
Eventos:
Exemplos:
- REMOVER_ACOES_REGISTRO - Para o escopo de um único registro (UPDATE e/oe VIEW)
- REMOVER_ACOES_LISTA - Para o escopo de vários registros (QUERY e/ou LIST)
- etc.
Ver também