Du kan utvikle valideringsskript i JavaScript for å validere analysekriterier og kolonneformler samt blokkere ugyldige spørringer.
Brukere som jobber med analyser, kan starte egendefinert JavaScript for å validere analysekriterier og kolonneformler. Valideringen gjør det mulig å blokkere spørringer ved redigering av en analyse. Egendefinert JavaScript må være tilgjengelig via en nettjener. Administratorer aktiverer denne funksjonen ved å angi URL-adressen for nettjeneren i systeminnstillingene og registrere nettjeneren som et sikkert domene.
Når en bruker prøver å kjøre en analyse, starter Oracle Analytics funksjonen validateAnalysisCriteria
. Du kan tilpasse validateAnalysisCriteria
for å validere og blokkere spørringer basert på dine egne bestemte kriterier. Hvis funksjonen returnerer true
, kjøres spørringen. Hvis funksjonen returnerer false
, blokkeres spørringen.
Dette er eksempelkode for et JavaScript-program som heter 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 funksjonen returnerer noe annet enn false
, vurderes kriteriene som gyldige, og analysen kjøres. Funksjonen brukes også til å validere kriterier for forhåndsvisnings- og lagringsoperasjoner.
Når en bruker prøver å angi eller endre en kolonneformel, starter Oracle Analytics funksjonen validateAnalysisFormula
for å verifisere operasjonen. Du kan tilpasse validateAnalysisFormula
for å validere og blokkere formler basert på dine egne bestemte kriterier. Hvis funksjonen returnerer true
, godtas formelen. Hvis valideringen mislykkes, returnerer funksjonen false
, formelen avvises, og den egendefinerte meldingen din vises.
Hvis du vil vise en melding og tillate at brukerne fortsetter, må funksjonen returnere true
. Hvis du vil blokkere spørringen, må funksjonen returnere false
eller vise en melding. Du kan bruke en JavaScript-streng og teknikker med regulære uttrykk i funksjonen for å undersøke og validere formelen.
Det finnes hjelpefunksjoner, slik at funksjonen for blokkering av spørringer kan se etter filtre, kolonner og så videre. Se Hjelpefunksjoner for validering.
Koden nedenfor viser for eksempel hvordan du blokkerer en spørring hvis en bruker angir en formel som ikke godtas.
// 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; }
Flere hjelpefunksjoner for validering er tilgjengelige i en JavaScript-fil du kan bruke.
Hjelpefunksjon for validering | Beskrivelse |
---|---|
|
Returnerer navnet på emneområdet analysen refererer til. Den brukes vanligvis i en Switch-setning i funksjonen, før annen validering utføres. Hvis analysen er settbaserte kriterier, returneres |
|
Returnerer |
|
Returnerer |
|
Kontrollerer at |
|
Returnerer |
|
Kontrollerer at |
|
Returnerer antallet filterverdier som er angitt for den angitte logiske kolonnen. Hvis filterverdien er |