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 " |