Môžete vyvíjať skripty overenia v jazyku JavaScript, ktoré budú overovať kritériá analýzy a vzorce stĺpcov a blokovať neplatné dopyty.
Používatelia pracujúci s analýzami môžu vyvolať vlastný skript JavaScript, ktorý bude overovať kritériá analýzy a vzorce stĺpcov. Toto overenie umožňuje blokovať dopyty počas úpravy analýzy. Vlastný skript JavaScript musí byť prístupný prostredníctvom webového servera. Na aktivovanie tejto funkcie administrátor zadá adresu URL webového servera v systémových nastaveniach a zaregistruje webový server ako bezpečnú doménu.
Vždy keď sa používateľ pokúsi spustiť analýzu, služba Oracle Analytics vyvolá funkciu validateAnalysisCriteria
. Funkciu validateAnalysisCriteria
môžete prispôsobiť tak, aby overovala a blokovala dopyty na základe vašich vlastných kritérií. Ak táto funkcia vráti hodnotu true
, dopyt sa spustí. Ak táto funkcia vráti hodnotu false
alebo zobrazí hlásenie, dopyt sa zablokuje.
Napríklad toto je vzorový kód pre program JavaScript s názvom 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; }
Ak táto funkcia vráti ľubovoľnú inú hodnotu než false
, kritériá sa považujú za platné a analýza sa spustí. Funkcia sa používa aj na overenie kritérií pre operácie ukážky a uloženia.
Keď sa používateľ pokúsi zadať alebo upraviť vzorec stĺpca, služba Oracle Analytics vyvolá funkciu validateAnalysisFormula
na overenie operácie. Funkciu validateAnalysisFormula
môžete prispôsobiť tak, aby overovala a prípadne blokovala vzorce na základe vašich vlastných kritérií. Ak táto funkcia vráti hodnotu true
, vzorec bol akceptovaný. Ak je overenie neúspešné, funkcia vráti hodnotu false
, vzorec sa zamietne a zobrazí sa vlastné hlásenie.
Ak chcete zobraziť hlásenie a umožniť používateľovi pokračovať, funkcia musí vrátiť hodnotu true
. Ak chcete dopyt zablokovať, funkcia musí vrátiť hodnotu false
alebo zobraziť hlásenie. Na preskúmanie a overenie vzorca môžete vo funkcii použiť reťazec JavaScriptu a techniky regulárnych výrazov.
K dispozícii sú aj pomocné funkcie, takže funkcia blokovania dopytov môže kontrolovať filtre, stĺpce a podobne. Pozrite si časť Pomocné funkcie overenia.
Nasledujúci kód napríklad znázorňuje, ako zablokovať dopyt, ak používateľ zadá neprijateľný vzorec.
// 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; }
V súbore JavaScript sú dostupné viaceré pomocné funkcie overenia, ktoré môžete používať.
Pomocná funkcia overenia | Popis |
---|---|
|
Vráti názov tematickej oblasti, na ktorú odkazuje analýza. Zvyčajne sa používa v príkaze switch v rámci funkcie pred vykonaním ďalšieho overenia. Ak ide o analýzu s kritériami na základe množiny, vráti hodnotu |
|
Vráti hodnotu |
|
Vráti hodnotu |
|
Skontroluje, či existuje |
|
Vráti hodnotu |
|
Skontroluje, či existuje |
|
Vráti počet hodnôt filtra, ktoré sú zadané pre daný logický stĺpec. Ak je hodnota filtra " |