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