Puteţi să dezvoltaţi script-uri de validare în JavaScript, pentru a valida criteriile de analiză şi formulele din coloane, precum şi pentru a bloca interogările nevalide.
Utilizatorii care lucrează cu analize pot invoca JavaScript personalizat pentru a valida criteriile de analiză şi formulele din coloane. Validarea permite blocarea interogărilor la editarea unei analize. JavaScript-ul personalizat trebuie să fie accesibil printr-un server web. Pentru a activa această caracteristică, administratorii specifică URL-ul serverului web în setările de sistem şi înregistrează serverul web ca domeniu sigur.
Când un utilizator încearcă să ruleze o analiză, Oracle Analytics invocă funcţia validateAnalysisCriteria. Puteţi personaliza validateAnalysisCriteria pentru a valida şi bloca interogările pe baza propriilor criterii specifice. Dacă funcţia returnează true, interogarea rulează. Dacă funcţia returnează false sau afişează un mesaj, interogarea este blocată.
De exemplu, codul de mai jos este un exemplu pentru programul JavaScript denumit 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;
}
Dacă funcţia returnează orice altă valoare în afară de false, criteriile sunt considerate valide şi analiza rulează. Funcţia se utilizează şi pentru a valida criteriile pentru operaţiunile de previzualizare şi salvare.
Când un utilizator încearcă să introducă sau să modifice formula unei coloane, Oracle Analytics invocă funcţia validateAnalysisFormula pentru a verifica operaţiunea. Puteţi personaliza validateAnalysisFormula pentru a valida şi bloca formulele pe baza propriilor criterii specifice. Dacă funcţia returnează TRUE, formula este acceptată. Dacă validarea eşuează, funcţia returnează FALSE, formula este respinsă şi este afişat mesajul dvs. personalizat.
Pentru a afişa un mesaj şi a permite utilizatorilor să continue, funcţia dvs. trebuie să returneze TRUE. Pentru a bloca interogarea, funcţia dvs. trebuie să returneze FALSE sau să afişeze un mesaj. Puteţi utiliza un şir JavaScript şi tehnici de expresie logică în funcţia dvs. pt. a investiga şi a valida formula.
Funcţiile asistentului sunt disponibile, astfel încât funcţia de blocare a interogării să poată verifica filtre, coloane etc. Consultaţi Funcţiile asistentului de validare.
De exemplu, următorul cod prezintă cum să blocaţi o interogare dacă utilizatorul introduce o formulă inacceptabilă.
// 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;
}
Mai multe funcţii ale asistentului de validare sunt disponibile pentru utilizare într-un fişier JavaScript.
| Funcţia asistentului de validare | Descriere |
|---|---|
|
|
Returnează numele zonei de subiect la care se face referire în analiză. În general, se utilizează într-o instrucţiune de comutare din cadrul funcţiei înainte de a efectua alte validări. Dacă analiza este un criteriu pe bază de set, returnează |
|
|
Returnează |
|
|
Returnează |
|
|
Verifică dacă există |
|
|
Returnează |
|
|
Verifică dacă există |
|
|
Returnează numărul de valori pentru filtru care sunt specificate pentru coloana logică dată. Dacă valoarea filtrului este " |