Vous pouvez développer des scripts de validation en JavaScript pour valider les critères d'analyse et les formules de colonne et bloquer les interrogations non valides.
Les utilisateurs travaillant avec des analyses peuvent appeler un JavaScript personnalisé pour valider les critères d'analyse et les formules de colonne. La validation permet de bloquer les interrogations lors de la modification d'une analyse. Le JavaScript personnalisé doit être accessible au moyen d'un serveur Web. Pour activer cette fonction, les administrateurs spécifient l'URL du serveur Web dans les paramètres de système et enregistrent le serveur en tant que domaine sécurisé.
Chaque fois qu'un utilisateur tente d'exécuter une analyse, Oracle Analytics appelle la fonction validateAnalysisCriteria
. Vous pouvez personnaliser validateAnalysisCriteria
pour valider et bloquer les interrogations en fonction de vos propres critères. Si la fonction retourne true
, l'interrogation est exécutée. Si la fonction retourne false
ou affiche un message, l'interrogation est bloquée.
Voici un exemple de code pour un programme JavaScript appelé 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; }
Si la fonction retourne une valeur autre que false
, les critères sont considérés comme valides et l'analyse est exécutée. La fonction est également utilisée pour valider les critères pour des opérations de prévisualisation et d'enregistrement.
Chaque fois qu'un utilisateur tente d'entrer ou de modifier une formule de colonne, Oracle Analytics appelle la fonction validateAnalysisFormula
pour vérifier l'opération. Vous pouvez personnaliser validateAnalysisFormula
pour valider et bloquer les formules en fonction de vos propres critères. Si la fonction retourne true
, la formule est acceptée. Si la validation échoue, la fonction retourne false
, la formule est rejetée et votre message personnalisé s'affiche.
Pour afficher un message et permettre aux utilisateurs de continuer, la fonction doit retourner true
. Pour bloquer l'interrogation, votre fonction doit retourner false
ou afficher un message. Vous pouvez utiliser une chaîne JavaScript et les techniques d'expression rationnelle dans votre fonction pour examiner et valider la formule.
Des fonctions d'aide sont disponibles pour que la fonction de blocage d'interrogation puisse vérifier la présence de filtres, de colonnes, etc. Voir Fonctions d'aide à la validation.
Par exemple, le code suivant montre comment bloquer une interrogation si un utilisateur entre une formule inacceptable.
// 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; }
Plusieurs fonctions d'aide à la validation sont mises à votre disposition dans un fichier JavaScript.
Fonction d'aide à la validation | Description |
---|---|
|
Retourne le nom du domaine référencé par l'analyse. Elle est généralement utilisée dans un énoncé conditionnel switch dans la fonction avant d'effectuer d'autres validations. Si l'analyse correspond à des critères basés sur un jeu, la fonction retourne la valeur |
|
Retourne |
|
Retourne |
|
Vérifie l'existence de |
|
Retourne |
|
Vérifie l'existence de |
|
Retourne le nombre de valeurs de filtre spécifiées pour la colonne logique indiquée. Si la valeur de filtre est " |