logo

4 февр. 2015 г.

BIEE 11g: запрет просмотра результатов анализа без фильтров

Часто вижу, что пользователи Oracle BI при создании новых анализов
работают с моделью данных сразу на вкладке "Результаты" редактора.

В идеальном мире это не несет проблем. Если у вас устойчивый к нагрузкам репозиторий (нет сложных логических схем - одни "звезды"), если у вас используется хранилище данных (с партиционированием; с шардингом; с агрегатами и query rewrite).
В таком случае запустите вы запрос по всем данным - произойдет переписывание запроса к таблице-агрегату (ROLAP).

Но реалии таковы, что применяются сложные модели данных, нет агрегатов, либо они некорректно применяются.
И тогда подобная привычка - строить анализы в режиме Preview без каких-либо фильтров - пагубно влияет на общую производительность системы. Особенно, когда много одновременно работающих пользователей.

Предлагаю простое решение, которое препятствует пользователям переходить на вкладку "Результаты" анализа без применения фильтров.



Как видно из скриншота - при переходе на вкладку "Результаты" выдается запрещающее модальное предупреждение.

Чтобы реализовать подобное - я использую функционал Blocking Analyses.

1. Копирую файл answerstemplates.xml из
$Middleware/Oracle_BI1/bifoundation/web/msgdb/messages
в
$Middleware/instances/instance1/bifoundation/OracleBIPresentationServicesComponent/coreapplication_obips1/msgdb/customMessages

2. Оставляю в скопированном файле лишь WebMessage с именем kuiCriteriaBlockingScript, код которого задаю следующим:
<WebMessage name="kuiCriteriaBlockingScript" translate="no"><HTML><script type="text/javascript">function validateAnalysisCriteria(analysisXml)
{
    var filtersNode = analysisXml.selectSingleNode(".//saw:filter");
    if (filtersNode == null) {
 return "You must use FILTERS!";
    }
    return true;
}</script></HTML></WebMessage>

3. Рестартую BI Presentation Server.


P.S. Данное решение не блокирует запуск анализов без фильтров в принципе.
Вы можете создать новый анализ без фильтров; сохранить его и открыть затем в режиме просмотра веб-каталога, либо через инфопанель - анализ отработает.
Блокировка срабатывает лишь в режиме работы в редакторе анализов. Но и эта мелочь может иногда помочь повысить общую производительность BI.

Комментариев нет:

Отправить комментарий