Můžete vytvářet vlastní ověřovací skripty v jazyce JavaScript pro ověřování kritérií analýz a vzorců sloupců a pro blokování neplatných dotazů.
Uživatelé pracující s analýzami mohou vyvolat vlastní skript v jazyce JavaScript pro ověřování kritérií analýzy a vzorců sloupců. Ověřování umožňuje blokovat dotazy při úpravě analýzy. Vlastní skript v jazyce JavaScript musí být přístupný prostřednictvím webového serveru. Chtějí-li správci tuto funkci aktivovat, musí zadat adresu URL webového serveru v nastavení systému a registrovat webový server jako bezpečnou doménu.
Kdykoli se uživatel pokusí spustit analýzu, služba Oracle Analytics vyvolá funkci validateAnalysisCriteria
. Funkci validateAnalysisCriteria
můžete přizpůsobit tak, aby ověřovala a blokovala dotazy na základě vašich vlastních specifických kritérií. Pokud funkce vrátí hodnotu true
, dotaz se spustí. Pokud funkce vrátí hodnotu false
nebo zobrazí zprávu, dotaz je blokován.
Následující ukázka obsahuje kód programu s názvem myblocking.js
vytvořený v jazyce JavaScript.
// 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; }
Pokud funkce vrátí cokoli jiného než hodnotu false
, jsou kritéria považována za platná a je spuštěna analýza. Funkce slouží také k ověření platnosti kritérií pro operace náhledu a ukládání.
Kdykoli se uživatel pokusí zadat nebo upravit vzorec sloupce, služba Oracle Analytics vyvolá funkci validateAnalysisFormula
k ověření operace. Funkci validateAnalysisFormula
můžete přizpůsobit tak, aby ověřovala a blokovala vzorce na základě vašich vlastních specifických kritérií. Pokud funkce vrátí hodnotu true
, vzorec je přijat. Pokud ověření selže, funkce vrátí hodnotu false
, vzorec je odmítnut a zobrazí se vaše vlastní zpráva.
Chcete-li zobrazit zprávu a umožnit uživatelům pokračovat, funkce musí vrátit hodnotu true
. Chcete-li dotaz zablokovat, funkce musí vrátit hodnotu false
nebo zobrazit zprávu. K prozkoumání a ověření vzorce můžete ve své funkci použít řetězec v jazyce JavaScript a techniky regulárních výrazů.
K dispozici jsou pomocné funkce, takže funkce blokování dotazů může kontrolovat filtry, sloupce atd. Prostudujte si téma Pomocné funkce ověřování.
Následující kód například ukazuje, jak blokovat dotaz, pokud uživatel zadá nepřijatelný 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; }
Soubor v jazyce JavaScript obsahuje několik pomocných funkcí ověřování, které můžete použít.
Pomocná funkce ověřování | Popis |
---|---|
|
Vrátí název cílové oblasti, na kterou se odkazuje analýza. Obvykle se používá v příkazu přepínání v rámci funkce před provedením dalšího ověření. Pokud analýza vychází z kritérií založených na sadě, funkce vrátí hodnotu |
|
Vrátí hodnotu |
|
Vrátí hodnotu |
|
Zkontroluje, zda existuje sloupec |
|
Vrátí hodnotu |
|
Zkontroluje, zda existuje filtr |
|
Vrátí počet hodnot filtru zadaných pro daný logický sloupec. Pokud je hodnota filtru „ |