Sie können Validierungsskripte in JavaScript entwickeln, um Analysekriterien und Spaltenformeln zu validieren und ungültige Abfragen zu blockieren.
Benutzer von Analysen können benutzerdefiniertes JavaScript aufrufen, um Analysekriterien und Spaltenformeln zu validieren. Diese Validierung ermöglicht es, Abfragen beim Bearbeiten einer Analyse zu blockieren. Das benutzerdefinierte JavaScript muss über einen Webserver zugänglich sein. Um dieses Feature zu aktivieren, müssen Administratoren die URL des Webservers in den Systemeinstellungen angeben und den Webserver als sichere Domain registrieren.
Wenn ein Benutzer eine Analyse ausführt, ruft Oracle Analytics die Funktion validateAnalysisCriteria auf. Sie können validateAnalysisCriteria anpassen, um Abfragen basierend auf Ihren eigenen spezifischen Kriterien zu validieren und zu blockieren. Wenn die Funktion true zurückgibt, wird die Abfrage ausgeführt. Wenn die Funktion false zurückgibt oder eine Meldung anzeigt, wird die Abfrage blockiert.
Der folgende Beispielcode ist für ein JavaScript-Programm namens 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;
}
Wenn die Funktion eine andere Antwort als false zurückgibt, gelten die Kriterien als gültig, und die Analyse wird ausgeführt. Die Funktion wird auch zum Validieren von Kriterien für Vorschau- und Speichervorgänge verwendet.
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;
}
Mehrere Validierungs-Helper-Funktionen sind in einer JavaScript-Datei für Sie verfügbar.
| Validierungs-Helper-Funktion | Beschreibung |
|---|---|
|
|
Gibt den Namen des von der Analyse referenzierten Themenbereichs zurück. Die Funktion wird im Allgemeinen in einer switch-Anweisung innerhalb der Funktion verwendet, bevor eine andere Validierung ausgeführt wird. Wenn die Analyse setbasierte Kriterien betrifft, wird |
|
|
Gibt |
|
|
Gibt |
|
|
Stellt sicher, dass |
|
|
Gibt |
|
|
Stellt sicher, dass |
|
|
Gibt die Anzahl der Filterwerte zurück, die für die jeweilige logische Spalte angegeben sind. Wenn der Filterwert " |