Telescope (core)
Como desabilitar funcionalidades através de regras de negócio?
ADS.FAQ-11575
As regras de condição permitem estabelecer uma condição para que uma determinada funcionalidade esteja disponível.
Por exemplo: Permitir cancelar pedidos apenas quando o pedido ainda não foi entregue.
Estas regras fazem com que:
- Botões (ou links) que ativam a funcionalidade sejam apresentados apenas quando a condição está permitindo
- Gerem um erro caso o usuário force o acesso através de um POST construído manualmente;
Para criar uma regra de condição:
- Definir a regra do tipo "Condição" na interface
- Selecione a(s) feature(s) que devem obedecer a regra
- Implementar um método que retorne True (para permitir a execução) ou False (para desabilitar a execução);
Importante
As regras de condição são testadas em diversas situações do bloco. Por isso, a regra deve verificar se está no contexto de um determinado registro ou não. Muitas vezes, será necessário ler manualmente o parâmetro A_ID para contextualizar o registro.
Exemplos
Só pode cancelar item quando o mesmo estiver como pendente
EntItensPedidos item = new EntItensPedidos(ctx);
try {
item.findById(ctx.getParameter("A_ID"));
return "P".equals(item.valueOfSituacao());
} catch (RecordNotFoundException ex) {
return true;
}
Ver também: