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;
}