Dezvoltare JavaScript pentru a bloca analize pe baza formulelor

Când un utilizator încearcă să introducă sau să modifice formula unei coloane, Oracle Analytics invocă funcţia validateAnalysisFormula pentru a verifica operaţiunea. Puteţi personaliza validateAnalysisFormula pentru a valida şi bloca formulele pe baza propriilor criterii specifice. Dacă funcţia returnează TRUE, formula este acceptată. Dacă validarea eşuează, funcţia returnează FALSE, formula este respinsă şi este afişat mesajul dvs. personalizat.

Pentru a afişa un mesaj şi a permite utilizatorilor să continue, funcţia dvs. trebuie să returneze TRUE. Pentru a bloca interogarea, funcţia dvs. trebuie să returneze FALSE sau să afişeze un mesaj. Puteţi utiliza un şir JavaScript şi tehnici de expresie logică în funcţia dvs. pt. a investiga şi a valida formula.

Funcţiile asistentului sunt disponibile, astfel încât funcţia de blocare a interogării să poată verifica filtre, coloane etc. Consultaţi Funcţiile asistentului de validare.

De exemplu, următorul cod prezintă cum să blocaţi o interogare dacă utilizatorul introduce o formulă inacceptabilă.

// 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;
}