เมื่อใดก็ตามที่ผู้ใช้พยายามป้อนหรือแก้ไขสูตรคอลัมน์ Oracle Analytics จะเรียกใช้ฟังก์ชัน validateAnalysisFormula เพื่อตรวจสอบการดำเนินการ คุณสามารถปรับแต่ง validateAnalysisFormula เพื่อตรวจสอบและบล็อคสูตรตามเกณฑ์ที่คุณระบุเองได้ หากฟังก์ชันส่งคืนค่า true ระบบจะยอมรับสูตร หากการตรวจสอบล้มเหลว ฟังก์ชันจะส่งคืน false ระบบจะปฏิเสธสูตร และข้อความที่คุณกำหนดเองจะปรากฏ
ในการแสดงข้อความและอนุญาตให้ผู้ใช้ดำเนินการต่อ ฟังก์ชันของคุณต้องแสดงค่า true ในการบล็อคการสืบค้น ฟังก์ชันของคุณต้องแสดงค่า false หรือแสดงข้อความ คุณสามารถใช้เทคนิคของสตริงจาวาสคริปต์และเอ็กซ์เพรสชันทั่วไปได้ในฟังก์ชันของคุณเพื่อสำรวจและตรวจสอบสูตรดังกล่าว
ฟังก์ชันโปรแกรมวิธีใช้พร้อมใช้งานเพื่อให้ฟังก์ชันการบล็อคการสืบค้นสามารถตรวจสอบฟิลเตอร์ คอลัมน์ และอื่นๆ ได้แล้ว โปรดดู ฟังก์ชันโปรแกรมวิธีใช้การตรวจสอบ
ตัวอย่างเช่น รหัสต่อไปนี้แสดงวิธีบล็อคการสืบค้น หากผู้ใช้ป้อนสูตรที่ไม่สามารถยอมรับได้
// 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;
}