Bir kullanıcı bir sütun formülü girmeye veya değiştirmeye çalıştığında Oracle Analitik işlemi doğrulamak üzere validateAnalysisFormula fonksiyonunu çağırır. Kendi belirli ölçütlerinizi esas alarak formülleri doğrulamak ve engellemek üzere validateAnalysisFormula uyarlayabilirsiniz. Fonksiyon true döndürürse formül kabul edilir. Doğrulama başarısız olursa fonksiyon false döndürür, formül reddedilir ve özel mesajınız görüntülenir.
Mesaj görüntülemek ve kullanıcıların devam etmesine izin vermek için fonksiyonunuz true döndürmelidir. Sorguyu engellemek için fonksiyonunuz yanlış döndürmeli veya bir mesaj görüntülemelidir. Formülü incelemek ve doğrulamak için fonksiyonunuzda bir JavaScript dizesi ve düzenli ifade teknikleri kullanabilirsiniz.
Sorgu engelleme fonksiyonunun filtreleri, sütunlar vb. kontrol edebilmesi için yardımcı fonksiyonlar kullanılabilir. Doğrulama Yardımcı Fonksiyonları konusuna bakın.
Örneğin, aşağıdaki kod bir kullanıcı kabul edilemeyen bir formül girerse bir sorgunun nasıl engelleneceğini göstermektedir.
// 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;
}