Du kan udvikle valideringsscripts i JavaScript for at validere analysekriterier og kolonneformler og blokere ugyldige forespørgsler.
Brugere, som arbejder med analyser, kan kalde tilpasset JavaScript for at validere analysekriterier og kolonneformler. Valideringen gør det muligt at blokere forespørgsler under redigering af en analyse. Det tilpassede JavaScript skal være tilgængeligt via en webserver. For at aktivere denne funktion angiver administratorer webserverens URL i systemindstillingerne og registrerer webserveren som et sikkert domæne.
Hver gang en bruger forsøger at køre en analyse, kalder Oracle Analytics funktionen validateAnalysisCriteria
. Du kan tilpasse validateAnalysisCriteria
for at validere og blokere forespørgsler baseret på dine egne specifikke kriterier. Hvis funktionen returnerer true
, køres forespørgslen. Hvis funktionen returnerer false
eller viser en meddelelse, blokeres forespørgslen.
Følgende er for eksempel en eksempelkode for et JavaScript-program kaldet 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; }
Hvis funktionen returnerer noget andet end false
, regnes kriterierne for at være gyldige, og analysen køres. Funktionen bruges også til at validere kriterier for operationer til forhåndsgennemgang og lagring.
Hver gang en bruger forsøger at indtaste eller modificere en kolonneformel, kalder Oracle Analytics funktionen validateAnalysisFormula
for at verificere operationen. Du kan tilpasse validateAnalysisFormula
for at validere og blokere formler baseret på dine egne specifikke kriterier. Hvis funktionen returnerer true
, er formlen accepteret. Hvis validering fejler, returnerer funktionen false
, formlen afvises, og din tilpassede meddelelse vises.
Hvis du vil vise en meddelelse og give brugerne mulighed for at fortsætte, skal din funktion returnere true
. Hvis du vil blokere forespørgslen, skal din funktion returnere false
eller vise en meddelelse. Du kan bruge en JavaScript-streng og teknikker med almindelige udtryk i din funktion til at undersøge og validere formlen.
Hjælpefunktioner er tilgængelige, så blokeringsfunktionen til forespørgsler kan tjekke for filtre, kolonner osv. Se Hjælpefunktioner til validering.
For eksempel viser følgende kode, hvordan en forespørgsel blokeres, hvis en bruger indtaster en uacceptabel formel.
// 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; }
Der er flere tilgængelige hjælpefunktioner til validering i en JavaScript-fil, som du kan bruge.
Hjælpefunktion til validering | Beskrivelse |
---|---|
|
Returnerer navnet på det emneområde, der refereres til i analysen. Det bruges generelt i en switch-sætning i funktionen, før anden validering udføres. Hvis analysen er et sætbaseret kriterium, returnerer den |
|
Returnerer |
|
Returnerer |
|
Tjekker for at sikre, at |
|
Returnerer |
|
Tjekker for at sikre, at |
|
Returnerer antallet af filterværdier, der er angivet for den givne logiske kolonne. Hvis filterværdien er " |