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