Można opracowywać skrypty weryfikacji w języku JavaScript, aby weryfikować kryteria analizy i formuły kolumn oraz blokować niepoprawne zapytania.
Użytkownicy pracujący nad analizami mogą wywoływać niestandardowy kod JavaScript w celu weryfikowania kryteriów analiz i formuł kolumn. Weryfikacja umożliwia blokowanie zapytań podczas edytowania analizy. Niestandardowy kod JavaScript musi być dostępny za pośrednictwem serwera internetowego. W celu włączenia tej funkcji administratorzy muszą określić w ustawieniach systemowych adres URL serwera internetowego i zarejestrować go jako bezpieczną domenę.
Za każdym razem, gdy użytkownik próbuje uruchomić analizę, Oracle Analytics wywołuje funkcję validateAnalysisCriteria
. Funkcję validateAnalysisCriteria
można dostosować tak, aby weryfikowała i blokowała zapytania na podstawie kryteriów określonych przez użytkownika. Jeśli funkcja zwróci wartość true
, zapytanie zostanie uruchomione. Jeśli funkcja zwróci wartość false
lub wyświetli komunikat, zapytanie zostanie zablokowane.
Poniżej znajduje się przykładowy kod programu JavaScript o nazwie 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; }
Jeśli funkcja zwróci wartość inną niż false
, kryteria zostaną uznane za spełnione i zostanie uruchomiona analiza. Funkcja ta umożliwia również weryfikowanie kryteriów operacji wyświetlania podglądu i zapisu.
Za każdym razem, gdy użytkownik próbuje wprowadzić lub zmodyfikować formułę kolumny, Oracle Analytics wywołuje funkcję validateAnalysisFormula
w celu zweryfikowania tej operacji. Funkcję validateAnalysisFormula
można dostosować tak, aby weryfikowała i ewentualnie blokowała formuły na podstawie kryteriów określonych przez użytkownika. Jeśli funkcja zwróci wartość true
, formuła zostaje zaakceptowana. Jeśli weryfikacja zakończy się niepowodzeniem, funkcja zwraca wartość false
, formuła jest odrzucana i zostaje wyświetlony skonfigurowany komunikat niestandardowy.
Aby został wyświetlony komunikat, a użytkownicy mogli kontynuować, funkcja musi zwrócić wartość true
. Aby zablokować zapytanie, funkcja musi zwrócić wartość false
lub wyświetlić komunikat. W funkcji, w celu sprawdzania poprawności formuły, można używać funkcji napisowych i wyrażeń regularnych języka JavaScript.
Dostępne są funkcje pomocnicze umożliwiające funkcji blokowania zapytań sprawdzanie filtrów, kolumn itd. Zob. Funkcje pomocnicze dotyczące weryfikacji.
W poniższym przykładowym kodzie pokazano, w jaki sposób można blokować zapytanie, jeśli użytkownik wprowadzi nieakceptowalną formułę.
// 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; }
W pliku JavaScript dostępnych jest kilka funkcji pomocniczych dotyczących weryfikacji.
Funkcja pomocnicza dotycząca weryfikacji | Opis |
---|---|
|
Zwraca nazwę obszaru tematycznego, do którego odwołuje się analiza. Zazwyczaj jest używana w instrukcji "switch" wewnątrz funkcji przed wykonaniem dalszej weryfikacji. Jeśli analiza ma kryteria oparte na zbiorze, zwraca wartość |
|
Zwraca wartość |
|
Zwraca wartość |
|
Sprawdza, czy istnieje kolumna |
|
Zwraca wartość |
|
Sprawdza, czy istnieje filtr |
|
Zwraca liczbę wartości filtra określonych dla danej kolumny logicznej. Jeśli wartością filtra jest " |