Можно создавать пользовательские сценарии проверки в JavaScript для проверки критериев анализа и формул столбцов, а также блокировки недопустимых запросов.
Пользователи, работающие с анализами, могут запустить пользовательский код JavaScript для проверки критериев анализа и формул столбцов. Проверка позволяет блокировать запросы при редактировании анализа. Доступ к пользовательскому коду JavaScript необходимо получать через веб-сервер. Чтобы включить эту функцию, администраторы должны указать URL-адрес веб-сервера в настройках системы и зарегистрировать этот веб-сервер в качестве безопасного домена.
При попытке пользователя запустить анализ Oracle Analytics вызывает функцию validateAnalysisCriteria
Можно настроить функцию validateAnalysisCriteria
для проверки и блокировки запросов на основе определенных критериев. Если функция возвращает значение true
, запрос запускается. Если функция возвращает значение false
или отображает сообщение, запрос блокируется.
Например, ниже приведен пример кода для программы JavaScript под названием 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; }
Если функция возвращает любое другое значение, кроме false
, критерии считаются допустимыми и анализ запускается. Функция также используется для проверки критериев для операций предварительного просмотра и сохранения.
При попытке пользователя ввести или изменить формулу столбца Oracle Analytics вызывает функцию validateAnalysisFormula
для проверки операции. Можно настроить функцию validateAnalysisFormula
для проверки и блокировки формул на основе определенных критериев. Если функция возвращает значение true
, формула принимается. Если проверка не пройдена, функция возвращает значение false
, формула отклоняется и отображается пользовательское сообщение.
Чтобы отобразить сообщение и разрешить пользователям продолжить, функция должна вернуть значение true
. Чтобы заблокировать запрос, функция должна вернуть значение false
или отобразить сообщение. Для исследования и проверки формулы в функции можно использовать строку JavaScript и методы регулярных выражений.
Служебные функции доступны для того, чтобы функция блокировки запроса могла проверять наличие фильтров, столбцов и т. д. См. раздел "Служебные функции проверки".
Например, следующий код показывает, как заблокировать запрос, если пользователь вводит недопустимую формулу.
// 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; }
Несколько служебных функций проверки доступны для использования в файле JavaScript.
Служебная функция проверки | Описание |
---|---|
|
Возвращает имя предметной области, на которую ссылается анализ. Обычно используется в инструкции switch внутри функции перед выполнением других проверок. Если анализ основан на наборе критериев, он возвращает |
|
Возвращает значение |
|
Возвращает значение |
|
Проверяет, существует ли |
|
Возвращает значение |
|
Проверяет, существует ли |
|
Возвращает количество значений фильтра, указанных для данного логического столбца. Если значение фильтра " |