Analiz ölçütlerini ve sütun formüllerini doğrulamak ve geçersiz sorguları engellemek için JavaScript'te doğrulama komut listeleri geliştirebilirsiniz.
Analiz ölçütlerini ve sütun formüllerini doğrulamak için özel JavaScript çağırabilen analizler ile çalışan kullanıcılar. Bir analiz düzenlenirken doğrulama sorguların engellenmesine olanak tanır. Özel JavaScript bir web sunucusu yoluyla erişilebilir olmalıdır. Bu özelliği etkinleştirmek için yöneticiler web sunucusunun URL'sini sistem ayarlarında belirtir ve web sunucusunu güvenli bir etki alanı olarak kaydederler.
Kullanıcı bir analiz çalıştırmayı her denediğinde Oracle Analitik validateAnalysisCriteria
fonksiyonunu çağırır. Kendi belirli ölçütlerinizi esas alarak sorguları doğrulamak ve engellemek üzere validateAnalysisCriteria
uyarlayabilirsiniz. Fonksiyon doğru
döndürürse sorgu çalışır. Fonksiyon false
döndürürse veya bir mesaj görüntülerse sorgu engellenir.
Örneğin, şu myblocking.js
adlı bir JavaScript programına ilişkin örnek bir koddur.
// 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; }
Fonksiyon false
dışında herhangi bir değer döndürürse ölçütler geçerli olarak değerlendirilir ve analiz çalışır. Fonksiyon aynı zamanda önizleme ve kaydetme işlemlerine ilişkin ölçütleri doğrulamak için de kullanılır.
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. Bkz. Doğrulama Yardımcı Fonksiyonları.
Ö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; }
Bazı doğrulama yardımcı fonksiyonları kullanmanız için bir JavaScript dosyasında mevcuttur.
Doğrulama Yardımcı Fonksiyonu | Açıklama |
---|---|
|
Analizin referans aldığı konu alanının adını döndürür. Genel olarak diğer doğrulama öncesinde fonksiyon içindeki switch komutunda kullanılır. Analiz küme esaslı ölçüt ise |
|
Belirtilen klasör (tablo) analize içerik tasarımcısı tarafından eklenmişse |
|
Belirtilen sütun analize içerik tasarımcısı tarafından eklenmişse |
|
|
|
Belirtilen sütunda bir filtre varsa |
|
Projeksiyon listesinde |
|
Belirtilen mantıksal sütun için filtre değerlerinin sayısını döndürür. Filtre değeri " |