Za każdym razem, gdy użytkownik próbuje wprowadzić lub zmodyfikować formułę kolumny, Oracle Analytics wywołuje funkcję validateAnalysisFormula w celu zweryfikowania tej operacji. Funkcję validateAnalysisFormula można dostosować tak, aby weryfikowała i ewentualnie blokowała formuły na podstawie kryteriów określonych przez użytkownika. Jeśli funkcja zwróci wartość true, formuła zostaje zaakceptowana. Jeśli weryfikacja zakończy się niepowodzeniem, funkcja zwraca wartość false, formuła jest odrzucana i zostaje wyświetlony skonfigurowany komunikat niestandardowy.
Aby został wyświetlony komunikat, a użytkownicy mogli kontynuować, funkcja musi zwrócić wartość true. Aby zablokować zapytanie, funkcja musi zwrócić wartość false lub wyświetlić komunikat. W funkcji, w celu sprawdzania poprawności formuły, można używać funkcji napisowych i wyrażeń regularnych języka JavaScript.
Dostępne są funkcje pomocnicze umożliwiające funkcji blokowania zapytań sprawdzanie filtrów, kolumn itd. Zob. Funkcje pomocnicze dotyczące weryfikacji.
W poniższym przykładowym kodzie pokazano, w jaki sposób można blokować zapytanie, jeśli użytkownik wprowadzi nieakceptowalną formułę.
// 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;
}