Du kan utveckla valideringsskript i JavaScript för att validera analyskriterier och kolumnformler samt blockera ogiltiga frågor.
Användare som arbetar med analyser kan anropa anpassat JavaScript för att validera analyskriterier och kolumnformler. Valideringen gör att frågor kan blockeras vid redigering av en analys. Detta anpassade JavaScript måste vara åtkomligt via en webbserver. En administratör aktiverar funktionen genom att ange URL:en för webbservern i systeminställningarna och registrera webbservern som en säker domän.
När en användare försöker köra en analys anropar Oracle Analytics funktionen validateAnalysisCriteria
. Du kan anpassa validateAnalysisCriteria
så att du kan validera och blockera frågor baserat på dina egna specifika kriterier. Om funktionen returnerar true
körs frågan. Om funktionen returnerar false
eller ett meddelande visas har frågan blockerats.
Här följer till exempel exempelkod för ett JavaScript-program med namnet 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; }
Om funktionen returnerar någonting annat än värdet false
anses kriterierna vara giltiga och analysen körs. Funktionen används också till att validera kriterier för förhandsgranskning och sparning.
När en användare försöker ange eller ändra en kolumnformel anropar Oracle Analytics funktionen validateAnalysisFormula
för att verifiera åtgärden. Du kan anpassa validateAnalysisFormula
så att formler valideras och blockeras baserat på dina egna kriterier. Om funktionen returnerar true
har formeln accepterats. Om valideringen misslyckas returnerar funktionen false
, formeln avvisas och det anpassade meddelandet visas.
För att ett meddelande ska visas och användarna ska tillåtas fortsätta måste funktionen returnera true
. Funktionen måste returnera false
eller visa ett meddelande för att frågan ska blockeras. Du kan använda en JavaScript-sträng och teknik för reguljära uttryck i funktionen för att undersöka och validera formeln.
Det finns hjälpfunktioner som gör att frågeblockeringsfunktionen kan söka efter t.ex. filter och kolumner. Se Funktioner för valideringshjälp.
Följande kod visar t.ex. hur en fråga ska blockeras om en användare anger en ej godkänd 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; }
Flera funktioner för valideringshjälp finns i en JavaScript-fil som du kan använda.
Funktion för valideringshjälp | Beskrivning |
---|---|
|
Returnerar namnet på det ämnesområde som refereras av analysen. Den används vanligen i en switch-sats inom funktionen innan annan validering utförs. Om analysen är av uppsättningsbaserade kriterier returneras |
|
Returnerar |
|
Returnerar |
|
Kontrollerar att |
|
Returnerar |
|
Kontrollerar att |
|
Returnerar det antal filtervärden som har angetts för den givna logiska kolumnen. Om filtervärdet är " |