Vytvoření skriptu v jazyce JavaScript pro blokování analýz na základě vzorce

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;
}