Keď sa používateľ pokúsi zadať alebo upraviť vzorec stĺpca, služba Oracle Analytics vyvolá funkciu validateAnalysisFormula na overenie operácie. Funkciu validateAnalysisFormula môžete prispôsobiť tak, aby overovala a prípadne blokovala vzorce na základe vašich vlastných kritérií. Ak táto funkcia vráti hodnotu true, vzorec bol akceptovaný. Ak je overenie neúspešné, funkcia vráti hodnotu false, vzorec sa zamietne a zobrazí sa vlastné hlásenie.
Ak chcete zobraziť hlásenie a umožniť používateľovi pokračovať, funkcia musí vrátiť hodnotu true. Ak chcete dopyt zablokovať, funkcia musí vrátiť hodnotu false alebo zobraziť hlásenie. Na preskúmanie a overenie vzorca môžete vo funkcii použiť reťazec JavaScriptu a techniky regulárnych výrazov.
K dispozícii sú aj pomocné funkcie, takže funkcia blokovania dopytov môže kontrolovať filtre, stĺpce a podobne. Pozrite si časť Pomocné funkcie overenia.
Nasledujúci kód napríklad znázorňuje, ako zablokovať dopyt, ak používateľ zadá neprijateľný vzorec.
// 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;
}