Vous pouvez développer des scripts de validation en JavaScript afin de valider les critères d'analyse et les formules de colonne, et de bloquer les requêtes non valides.
Les utilisateurs se servant d'analyses peuvent appeler des scripts JavaScript personnalisés afin de valider les critères d'analyse et les formules de colonne. La validation permet de bloquer les requêtes lors de la modification d'une analyse. Le script JavaScript personnalisé doit être accessible via un serveur Web. Pour activer cette fonctionnalité, les administrateurs indiquent l'URL du serveur Web dans les paramètres système et inscrivent le serveur Web en tant que domaine sécurisé.
Lorsqu'un utilisateur tente d'exécuter une analyse, Oracle Analytics appelle la fonction validateAnalysisCriteria
. Vous pouvez personnaliser validateAnalysisCriteria
pour valider et bloquer les requêtes en fonction de vos propres critères spécifiques. Si la fonction renvoie true
, la requête est exécutée. Si la fonction renvoie false
ou si elle affiche un message, la requête 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 renvoie une valeur différente de 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 des opérations d'aperçu et d'enregistrement.
Dès qu'un utilisateur essaie de saisir 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 spécifiques. Si la fonction renvoie true
, la formule est acceptée. Si la validation échoue, la fonction renvoie false
, la formule est rejetée et votre message personnalisé apparaît.
Pour afficher un message et permettre aux utilisateurs de poursuivre, votre fonction doit renvoyer true
. Pour bloquer la requête, votre fonction doit renvoyer false
ou afficher un message. Vous pouvez utiliser une chaîne JavaScript et des techniques d'expression régulière dans votre fonction pour examiner et valider la formule.
Des fonctions helper sont disponibles pour permettre à la fonction de blocage de requête de rechercher des filtres, des colonnes, etc. Reportez-vous à Fonctions helper de validation.
Par exemple, le code suivant montre comment bloquer une requête si un utilisateur saisit une formule non acceptable.
// 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 helper de validation sont disponibles dans un fichier JavaScript que vous pouvez utiliser.
Fonction helper de validation | Description |
---|---|
|
Renvoie le nom du domaine référencé par l'analyse. Il est généralement utilisé dans une instruction SWITCH au sein de la fonction avant de procéder à d'autres validations. Si l'analyse est un critère basé sur un ensemble, |
|
Renvoie |
|
Renvoie |
|
Vérifie que |
|
Renvoie |
|
Vérifie que |
|
Renvoie le nombre de valeurs de filtre qui sont indiquées pour la colonne logique donnée. Si la valeur de filtre est " |