בכל פעם שמשתמש מנסה להזין או לשנות נוסחת עמודה, Oracle Analytics מפעיל את הפונקציה validateAnalysisFormula כדי לאמת את הפעולה. תוכל להתאים אישית את validateAnalysisFormula כדי לאשר תקינות של נוסחות ולחסום אותן בהתבסס על הקריטריונים הספציפיים שלך. אם הפונקציה מחזירה אמת, הנוסחה מתקבלת. אם בדיקת התקינות נכשלת, הפונקציה מחזירה שקר, הנוסחה נדחית וההודעה המותאמת אישית שלך מוצגת.
כדי להציג הודעה ולאפשר למשתמשים להמשיך, הפונקציה שלך צריכה להחזיר אמת. כדי לחסום את השאילתא, על הפונקציה שלך להחזיר שקר או להציג הודעה. תוכל להשתמש במחרוזת JavaScript ובטכניקות ביטוי רגיל בפונקציה שלך כדי לחקור ולאמת את הנוסחה.
פונקציות מסייע זמינות כך שפונקציית חסימת השאילתות יכולה לבדוק מסננים, עמודות וכן הלאה. ראה פונקציות מסייע של בדיקת תקינות.
לדוגמה, הקוד הבא מראה כיצד לחסום שאילתא אם משתמש מזין נוסחה לא קבילה.
// 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;
}