Développement de scripts JavaScript pour bloquer les analyses en fonction d'une formule

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