Desenvolver JavaScript para Bloquear Análises Com Base em Fórmulas

Sempre que um utilizar tentar introduzir ou modificar uma fórmula de coluna, o Oracle Analytics invoca a função validateAnalysisFormula para verificar a operação. Pode customizar validateAnalysisFormula para validar e bloquear fórmulas com base nos seus próprios critérios específicos. Se a função devolver true, a fórmula é aceite. Se a validação falhar, a função devolve false, a fórmula é rejeitada e a sua mensagem customizada é apresentada.

Para apresentar uma mensagem e permitir que os utilizadores continuem, a sua função deve devolver true. Para bloquear a consulta, a sua função deve devolver false ou apresentar uma mensagem. Pode utilizar uma cadeia de caracteres de JavaScript e técnicas de expressões regulares na sua função para investigar e validar a fórmula.

As funções de auxílio estão disponíveis para que a função de bloqueio de consulta possa verificar se existem filtros, colunas, entre outros. Consulte Funções do Auxílio de Validação.

Por exemplo, o seguinte código mostra como bloquear uma consulte se um utilizador introduzir 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;
}