Siempre que un usuario intenta introducir o modificar una fórmula de columna, Oracle Analytics llama a la función validateAnalysisFormula para verificar la operación. Puede personalizar validateAnalysisFormula para validar y bloquear fórmulas según sus propios criterios específicos. Si la función devuelve true, se acepta la fórmula. Si falla la validación, la función devuelve false, se rechaza la fórmula y aparece su mensaje personalizado.
Para mostrar un mensaje y permitir a los usuarios continuar, la función debe devolver true. Para bloquear la consulta, la función debe devolver false o mostrar un mensaje. Puede utilizar una cadena de JavaScript y técnicas de expresión regular en la función para investigar y validar la fórmula.
Hay funciones de asistente disponibles para que la función de bloqueo de consulta pueda comprobar si hay filtros, columnas, etc. Consulte Funciones del asistente de validación.
Por ejemplo, el siguiente código muestra cómo bloquear una consulta si un usuario introduce una fórmula inaceptable.
// 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;
}