Amikor egy felhasználó megpróbál beírni vagy módosítani egy oszlopképletet, az Oracle Analytics meghívja a validateAnalysisFormula függvényt a művelet ellenőrzéséhez. A validateAnalysisFormula testreszabható, hogy ellenőrizzen és blokkoljon képleteket a saját specifikus feltételeink szerint. Ha a függvény a true értéket adja vissza, a képlet elfogadott. Ha az érvényesítés nem működik, a függvény a false, értéket adja vissza, a képlet elutasításra kerül, és megjelenik az Ön egyéni üzenete.
Üzenet megjelenítéséhez és annak engedélyezéséhez, hogy a felhasználók továbbléphessenek, a függvénynek a true értéket kell visszaadnia. A lekérdezés blokkolásához a függvénynek a false értéket kell visszaadnia, vagy egy üzenetet kell megjelenítenie. A függvényben JavaScript-karakterláncot és reguláris kifejezési technikákat használhat a képlet vizsgálatához és ellenőrzéséhez.
Rendelkezésre állnak segítő függvények, hogy a lekérdezést letiltó függvény ellenőrizhesse a szűrőket, oszlopokat stb. Lásd: Érvényesítést segítő függvények.
Például, a következő kód megmutatja, hogyan tiltsunk le egy lekérdezést, ha a felhasználó elfogadhatatlan függvényt ad meg.
// 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;
}