JavaScript zum Blockieren von Analysen auf Formelbasis entwickeln

Wenn ein Benutzer eine Spaltenformel eingibt oder ändert, ruft Oracle Analytics die Funktion validateAnalysisFormula auf, um den Vorgang zu verifizieren. Sie können validateAnalysisFormula anpassen, um Formeln basierend auf Ihren eigenen spezifischen Kriterien zu validieren und zu blockieren. Wenn die Funktion true zurückgibt, wird die Formel akzeptiert. Wenn die Validierung nicht erfolgreich verläuft, gibt die Funktion false zurück. Dann wird die Formel abgelehnt und Ihre benutzerdefinierte Meldung angezeigt.

Um eine Meldung anzuzeigen und das Fortsetzen des Vorgangs zu ermöglichen, muss die Funktion true zurückgeben. Um die Abfrage zu blockieren, muss die Funktion false zurückgeben oder eine Meldung anzeigen. Mit einer JavaScript-Zeichenfolge und Methoden für reguläre Ausdrücke in der Funktion können Sie die Formel prüfen und validieren.

Helper-Funktionen sind verfügbar, damit die Abfrageblockierungsfunktion nach Filtern, Spalten usw. suchen kann. Siehe Validierungs-Helper-Funktionen.

Beispiel: Der folgende Code zeigt, wie Sie eine Abfrage blockieren, wenn ein Benutzer eine unzulässige Formel eingibt.

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