Sviluppare codice JavaScript per bloccare le analisi in base a formule

Ogni volta che un utente tenta di immettere o modificare una formula di colonna, Oracle Analytics richiama la funzione validateAnalysisFormula per verificare l'operazione. È possibile personalizzare validateAnalysisFormula per convalidare e bloccare le formule in base a criteri specifici. Se la funzione restituisce true, la formula viene accettata. Quando la convalida non riesce la funzione restituisce false, la formula viene rifiutata e viene visualizzato il messaggio personalizzato.

Per visualizzare un messaggio e consentire agli utenti di continuare, la funzione deve restituire true. Per bloccare la query, la funzione deve restituire false o visualizzare un messaggio. Nella funzione è possibile usare una stringa JavaScript e tecniche di espressione regolare per esaminare e convalidare la formula.

Le funzioni di supporto disponibili consentono alla funzione di blocco delle query di verificare la presenza di filtri, colonne e così via. Vedere Funzioni di supporto per la convalida.

Ad esempio, il codice riportato di seguito mostra come bloccare una query se un utente immette una formula non accettabile.

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