Razvijte JavaScript za blokiranje analiza temeljem formule

Svaki put kad korisnik pokuša unijeti ili izmijeniti formulu stupca, Oracle Analytics pozvat će funkciju validateAnalysisFormula za provjeru valjanosti operacije. Možete prilagoditi validateAnalysisFormula za provjeru valjanosti i blokiranje formula temeljem vlastitih specifičnih kriterija. Ako funkcija vrati true, formula će biti prihvaćena. U slučaju neuspješne provjere valjanosti, funkcija će vratiti false, formula će biti odbijena i prikazat će se vaša prilagođena poruka.

Radi prikazivanja poruke, a kako bi korisnici mogli nastaviti s radom, vaša funkcija mora vratiti true. Za blokiranje upita vaša funkcija mora vratiti false ili prikazati poruku. Možete upotrijebiti JavaScript niz i tehnike regularnih izraza u svojoj funkciji da biste istražili i potvrdili formulu.

Dostupne su funkcije pomoći kako bi funkcija za blokiranje upita mogla provjeravati filtre, stupce itd. Pogledajte Pomoćne funkcije za provjeru valjanosti.

Npr., sljedeći kôd pokazuje kako blokirati upit ako korisnik unese neprihvatljivu formulu.

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