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