คุณสามารถพัฒนาสคริปต์การตรวจสอบในจาวาสคริปต์ เพื่อตรวจสอบเกณฑ์การวิเคราะห์และสูตรของคอลัมน์ แล้วบล็อคการสืบค้นที่ไม่ถูกต้องได้
ผู้ใช้ที่ทำงานกับการวิเคราะห์สามารถเรียกใช้จาวาสคริปต์ที่กำหนดเอง เพื่อตรวจสอบเกณฑ์การวิเคราะห์และสูตรของคอลัมน์ การตรวจสอบช่วยให้สามารถบล็อคการสืบค้นเมื่อแก้ไขการวิเคราะห์ได้ จาวาสคริปต์ที่กำหนดเองต้องสามารถเข้าใช้ได้ผ่านเว็บเซิร์ฟเวอร์ ในการใช้งานคุณสมบัตินี้ ผู้ดูแลระบบจะระบุ URL ของเว็บเซิร์ฟเวอร์ในการตั้งค่าระบบ และรีจิสเตอร์เว็บเซิร์ฟเวอร์เป็นโดเมนที่ปลอดภัย
เมื่อใดก็ตามที่ผู้ใช้พยายามรันการวิเคราะห์ Oracle Analytics จะเรียกใช้ฟังก์ชัน validateAnalysisCriteria คุณสามารถปรับแต่ง validateAnalysisCriteria เพื่อตรวจสอบและบล็อคการสืบค้นตามเกณฑ์ที่คุณระบุเองได้ หากฟังก์ชันส่งคืนค่า true ระบบจะรันการสืบค้น หากฟังก์ชันส่งคืนค่า false หรือแสดงข้อความ ระบบจะบล็อคการสืบค้น
ตัวอย่างเช่น รหัสต่อไปนี้เป็นรหัสตัวอย่างสำหรับโปรแกรมจาวาสคริปต์ที่ชื่อ myblocking.js
// This is a blocking function. It ensures that users select what
// the designer wants them to.
function validateAnalysisCriteria(analysisXml)
{
// Create the helper object
var tValidator = new CriteriaValidator(analysisXml);
// Validation Logic
if (tValidator.getSubjectArea() != "Sample Sales")
return "Try Sample Sales?";
if (!tValidator.dependentColumnExists("Markets","Region","Markets","District"))
{
// If validation script notifies user, then return false
alert("Region and District are well suited, do you think?");
return false;
}
if (!tValidator.dependentColumnExists("Sales Measures","","Periods","Year"))
return "You selected a measure so pick Year!";
if (!tValidator.filterExists("Sales Measures","Dollars"))
return "Maybe filter on Dollars?";
if (!tValidator.dependentFilterExists("Markets","Market","Markets"))
return "Since you are showing specific Markets, filter the markets.";
var n = tValidator.filterCount("Markets","Region");
if ((n <= 0) || (n > 3))
return "Select 3 or fewer specific Regions";
return true;
}
หากฟังก์ชันส่งคืนค่าอื่นที่ไม่ใช่ false ระบบจะถือว่าเกณฑ์ถูกต้อง และจะรันการวิเคราะห์ ระบบจะใช้ฟังก์ชันเพื่อตรวจสอบเกณฑ์สำหรับการแสดงตัวอย่าง และบันทึกการดำเนินการ
เมื่อใดก็ตามที่ผู้ใช้พยายามป้อนหรือแก้ไขสูตรคอลัมน์ 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;
}
มีฟังก์ชันโปรแกรมวิธีใช้การตรวจสอบในไฟล์จาวาสคริปต์ที่พร้อมให้คุณใช้งานหลายรายการ
| ฟังก์ชันโปรแกรมวิธีใช้การตรวจสอบ | คำอธิบาย |
|---|---|
|
|
ส่งคืนชื่อของหัวเรื่องที่อ้างอิงโดยการวิเคราะห์ โดยทั่วไป จะใช้ในคำสั่ง switch ภายในฟังก์ชัน ก่อนที่จะดำเนินการตรวจสอบอื่นๆ ต่อไป หากการวิเคราะห์เป็นเกณฑ์ที่กำหนดเป็นชุด การวิเคราะห์จะส่งคืน |
|
|
ส่งคืน |
|
|
ส่งคืน |
|
|
ตรวจสอบเพื่อให้แน่ใจว่ามี |
|
|
ส่งคืน |
|
|
ตรวจสอบเพื่อให้แน่ใจว่ามี |
|
|
ส่งคืนจำนวนค่าของฟิลเตอร์ที่ระบุไว้สำหรับคอลัมน์แบบลอจิคัลที่กำหนดให้ หากค่าฟิลเตอร์ คือ " |