Puede desarrollar scripts de validación personalizados en JavaScript para validar criterios de análisis y fórmulas de columna, y para bloquear consultas no válidas.
Los usuarios que trabajan con análisis pueden llamar un JavaScript personalizado para validar los criterios de análisis y las fórmulas de columna. La validación permite que se bloqueen las columnas al editar un análisis. El JavaScript personalizado debe ser accesible a través de un servidor web. Para activar esta función, los administradores especifican la URL del servidor web en la configuración del sistema y registran el servidor web como un dominio seguro.
Siempre que un usuario intenta ejecutar un análisis, Oracle Analytics llama a la función validateAnalysisCriteria
. Puede personalizar validateAnalysisCriteria
para validar y bloquear consultas según sus propios criterios específicos. Si la función devuelve true
, se ejecuta la consulta. Si la función devuelve false
o muestra un mensaje, se bloquea la consulta.
Por ejemplo, a continuación se incluye un código de ejemplo para un programa JavaScript denominado 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 función devuelve una salida distinta de false
, se considera que los criterios son válidos y se ejecuta el análisis. La función también se utiliza para validar criterios para operaciones de vista previa y guardado.
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; }
En un archivo JavaScript dispone de varias funciones del asistente de validación para su uso.
Función del asistente de validación | Descripción |
---|---|
|
Devuelve el nombre del área temática al que hace referencia el análisis. Se utiliza generalmente en una sentencia switch dentro de la función antes de realizar otra validación. Si el análisis son criterios basados en juegos, devuelve |
|
Devuelve |
|
Devuelve |
|
Se asegura de que |
|
Devuelve |
|
Se asegura de que |
|
Devuelve el número de valores de filtro que se han especificado para la columna lógica proporcionada. Si el valor de filtro es " |