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