Sempre que um usuário tenta digitar ou modificar uma fórmula de coluna, o Oracle Analytics chama a função validateAnalysisFormula para verificar a operação. Você pode personalizar validateAnalysisFormula para validar e bloquear fórmulas com base em seus próprios critérios específicos. Se a função retornar true, a fórmula será aceita. Se a validação falhar e a função retornar false, a fórmula será rejeitada e sua mensagem personalizada será exibida.
Para exibir uma mensagem e permitir que os usuários continuem, a função tem que retornar true. Para bloquear a consulta, sua função deve retornar false ou exibir uma mensagem. Você pode usar uma string JavaScript e técnicas de expressão regular em sua função para investigar e validar a fórmula.
Estão disponíveis funções auxiliares para que a função de bloqueio de consulta possa verificar filtros, colunas etc. Consulte Funções Auxiliares de Validação.
Por exemplo, o código a seguir mostra como bloquear uma consulta se um usuário digitar uma fórmula inaceitável.
// This is a formula blocking function. It makes sure the user doesn't enter an unacceptable formula.
function validateAnalysisFormula(sFormula, sAggRule)
{
// don't allow the use of concat || in our formulas
var concatRe = /\|\|/gi;
var nConcat = sFormula.search(concatRe);
if (nConcat >= 0)
return "You used concatenation (character position " + nConcat + "). That isn't allowed.";
// no case statements
var caseRe = /CASE.+END/gi;
if (sFormula.search(caseRe) >= 0)
return "Don't use a case statement.";
// Check for a function syntax: aggrule(formula) aggrule shouldn't contain a '.'
var castRe = /^\s*\w+\s*\(.+\)\s*$/gi;
if (sFormula.search(castRe) >= 0)
return "Don't use a function syntax such as RANK() or SUM().";
return true;
}