U kunt validatiescripts in JavaScript ontwikkelen om analysecriteria en kolomformules te valideren, en ongeldige zoekopdrachten te blokkeren.
Gebruikers die werken met analysen kunnen aangepast JavaScript aanroepen om analysecriteria en kolomformules te valideren. De validatie maakt het mogelijk om zoekopdrachten te blokkeren tijdens het bewerken van een analyse. Het aangepaste JavaScript moet toegankelijk zijn via een webserver. Beheerders kunnen deze functie activeren door de URL van de webserver op te geven in de systeeminstellingen en de webserver als een veilig domein te registreren.
Wanneer een gebruiker een analyse probeert uit te voeren, roept Oracle Analytics de functie validateAnalysisCriteria
aan. U kunt validateAnalysisCriteria
aanpassen zodat er query's worden gevalideerd en geblokkeerd op basis van uw eigen specifieke criteria. Als de functie true
retourneert, wordt de query uitgevoerd. Als de functie false
retourneert of er een bericht verschijnt, wordt de query geblokkeerd.
Een voorbeeld: het onderstaande is een voorbeeldcode voor een JavaScript-programma genaamd 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; }
Als de functie iets anders dan false
retourneert, worden de criteria als geldig beschouwd en wordt de analyse uitgevoerd. De functie wordt ook gebruikt om criteria voor voorbeeld- en opslagbewerkingen te valideren.
Wanneer een gebruiker probeert een kolomformule in te voeren of te wijzigen, roept Oracle Analytics de functie validateAnalysisFormula
aan om de bewerking te verifiëren. U kunt validateAnalysisFormula
aanpassen om formules te valideren en blokkeren op basis van uw eigen specifieke criteria. Als de functie true
retourneert, is de formule geaccepteerd. Als de validatie mislukt, retourneert de functie false
. De formule wordt afgewezen en uw aangepaste bericht wordt weergegeven.
Als u een bericht wilt weergeven en gebruikers in staat wilt stellen om door te gaan, moet de functie true
retourneren. Als u de zoekopdracht wilt blokkeren, moet uw functie false
retourneren of een bericht weergeven. U kunt een JavaScript-string en technieken voor reguliere expressies gebruiken in uw functie om de formule te onderzoeken en te valideren.
Er zijn helpfuncties beschikbaar, zodat de functie voor het blokkeren van query's kan controleren op filters, kolommen, enzovoort. Zie Helpfuncties voor validatie.
Met de volgende code wordt een query bijvoorbeeld geblokkeerd als een gebruiker een onacceptabele formule invoert.
// 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; }
Er zijn verschillende helpfuncties voor validatie beschikbaar in een JavaScript-bestand die u kunt gebruiken.
Helpfunctie voor validatie | Beschrijving |
---|---|
|
Hiermee wordt de naam geretourneerd van het onderwerpgebied waarnaar wordt verwezen door de analyse. Dit wordt meestal gebruikt in een switch-statement binnen de functie voordat andere validatie wordt uitgevoerd. Als de analyse op een set gebaseerde criteria gebruikt, wordt |
|
Hiermee wordt |
|
Hiermee wordt |
|
Hiermee wordt gecontroleerd of |
|
Hiermee wordt |
|
Hiermee wordt gecontroleerd of |
|
Hiermee wordt het aantal filterwaarden geretourneerd dat is opgegeven voor de gegeven logische kolom. Als de filterwaarde " |