logo

22 дек. 2009 г.

BIP: относительные пути вызова суб-шаблонов разметки

В BI Publisher есть довольно удобная возможность модульного создания шаблонов разметки. Если во всех ваших отчетах «шапка» и «подвал» одинаковы, то есть смысл вынести их в суб-шаблоны. А в самих отчетах оставить лишь ссылки на них. Преимущества очевидны.
Также суб-шаблоны могут быть полезны как хранилище XSL-функций (например, функции по преобразованию числа в представление прописью)

Все это прекрасно, но существует небольшое «ограничение». Якобы, данный метод работает только с абсолютными путями.

6 дек. 2009 г.

BIEE: фильтр по рангу в таблице среза

Что если вы хотите фильтровать кол-во выводимых в Answer’е строк? Нет ничего проще – скажете вы – используйте функцию RANK.
Но как быть с таблицей среза?

11 нояб. 2009 г.

BIEE: анализ системной статистики совместно с данными UsageTracking

Наверняка, вы пользовались формой просмотра текущих характеристик вашего приложения BIEE.

Зачастую данные, показываемые этой формой, интересны для анализа. Особенно в совокупности с данными, предоставляемыми UsageTacking.
Согласитесь, было бы интересно узнать какое количество физических соединений открыто в момент пиковой нагрузки на BI Server, а также какие именно логические запросы были запущены.

9 нояб. 2009 г.

BIEE: ошибка при использовании источниками XML и СУБД с ConnectionScript

При создании репозитория BIEE, содержащего обращения к физическим источникам – XML-файлам, а также обращения к СУБД, ни в коем случае не задавайте ConnectionScripts для ConnectionPool’ов к СУБД.

При генерировании «ансвера», содержащего обращения к СУБД и к XML, внутренняя реализация BIServer’а не очищает скрипты пула соединений при последовательном доступе к этим источникам.
Соответственно возникает малоинформативная ошибка [nQSError: 10058]

BIP: таймаут на длительные "ансверы"

Если вам приходится использовать BIEE поверх OLTP-источников, то, наверняка, часть ваших "ансверов" будет выполняться подолгу.

Допустим, ваши пользователи готовы с этим мириться.

Но тут вас ожидает небольшой подвох. При использовании BI Publisher’а в качестве средства форматирования «ансвера» для всех отчетов, источником которых является «ансвер» со временем выполнения больше 5-10 минут, будет генерироваться ошибка.

По прошествии означенных 5-10 минут пользователю будет выдаваться сообщение об ошибке вида «Request Cancelled», либо «Request timed out».

Первое сообщение «лечится» установкой параметров PresentationServer'а (файл instanceconfig.xml):

<ConnectionExpireMinutes>60</ConnectionExpireMinutes>
<UnaccessedRunningTimeoutMinutes>60</UnaccessedRunningTimeoutMinutes>

Второе сообщение:

<ClientSessionExpireMinutes>60</ClientSessionExpireMinutes>
<SessionTimeoutSeconds>3600</SessionTimeoutSeconds>
<UIDefaultTimeoutMinutes>60</UIDefaultTimeoutMinutes>

В итоге файл instanceconfig.xml будет содержать следующие узлы:

<WebConfig>
<ServerInstance>

<UnaccessedRunningTimeoutMinutes>60</UnaccessedRunningTimeoutMinutes>
<ConnectionExpireMinutes>60</ConnectionExpireMinutes>
<ClientSessionExpireMinutes>60</ClientSessionExpireMinutes>
<SessionTimeoutSeconds>3600</SessionTimeoutSeconds>
<UIDefaultTimeoutMinutes>60</UIDefaultTimeoutMinutes>

</ServerInstance>
</WebConfig>

6 окт. 2009 г.

BIEE: вызов информационных панелей с инициализацией переменных презентаций

Приведенное решение является альтернативой GO-URL-метода (смотри, например, здесь).

С помощью GO-URL мы можем передать значения конкретных столбцов, определить условие фильтра по ним. Но задать значение переменной презентации при вызове дашборда извне нельзя.


2 окт. 2009 г.

BIP: блокирование управляющих элементов отчета до его завершения

Иногда приходится разрабатывать в BIP «тяжелые» отчеты, которые обрабатывают большие объемы данных, и время выполнения которых исчисляется десятками минут.

Что если такой отчет будет использоваться человеком нетерпеливым? Да еще и мало знакомым с «этой вашей системой»…

29 сент. 2009 г.

BIP: Число прописью в RTF-шаблоне

Очень часто, в отчетных документах необходимо дублировать итоговую сумму прописью. Все хорошо, когда итоговая сумма известна ДО генерации отчета (например, посчитана в sql запросе и преобразована в пропись с помощью PL\SQL пакета). А что делать, когда сумма рассчитывается динамически, в самом RTF-шаблоне? Тут нам на помощь приходят XSL-функции и возможность использовать subtemplates(подшаблоны) в RTF-шаблоне.

Написав небольшую XSL-функцию для перевода числа в пропись:

BIP: логгирование событий

Как включить логгирование событий BI Publisher? Об этом пишут все кому не лень – вот и я решил написать.

15 сент. 2009 г.

BIEE: общий запрет на использование кеша Presentation Services

Не знаю как вы, а я устал постоянно отключать кеш Presentation Services для каждого "ансвера" в процессе разработки-тестирования.

Существует особый параметр для Presentation Services, запрещающий использование кеша на уровне системы.

Отредактируйте файл {OracleBIData}\web\config\instanceconfig.xml
Добавьте новый элемент <ForceRefresh> в узел <ServerInstance>

<?xml version="1.0" encoding="utf-8"?>
<WebConfig>
<ServerInstance>
..........
<ForceRefresh>TRUE</ForceRefresh>
</ServerInstance>
</WebConfig>


Перезапустите Presentation Server.

Список параметров доступен здесь

BIEE: сохранение контекста при переходе между информационными панелями

Допустим, у вас есть несколько информационных панелей, использующих «ансверы» на одних и тех же предметных областях.
И вам не хочется при переходе на очередную информационную панель заново вводить значения подсказок панели.


11 сент. 2009 г.

BIP: неявные параметры отчетов

Как узнать в запросе BI Publisher'а кто именно формирует отчет?
В какой стране он находится?
Какой язык предпочитает?

Всю эт информацию можно почерпнуть из неявных параметров для отчета.
xdo_user_name - имя пользователя, под которым запущен отчет;
xdo_user_roles - полномочия пользователя, запустившего отчет;
xdo_user_report_oracle_lang - язык отчета;
xdo_user_report_locale - локаль отчета;
xdo_user_ui_oracle_lang - язык интерфейса, под которым запущен отчет;
xdo_user_ui_locale - локаль интерфейса, под которой запущен отчет;

Их не требуется определять для каждого отчета.
Обращаться к ним можно так же, как к явным параметрам отчета - :xdo_user_name.

BIP: установка высоты фрейма отчета в binary-формате

Часто встречается следующая проблемка при интеграции BIP с внешними системами.

При вызове окна браузера, содержащего отчет BIP в не-HTML форматах (т.н. binary) и в режиме "только документ" (_xmode=4), внизу окна браузера видна пустая область примерно на 1/5 высоты. Ерунда, но раздражает.

Чтобы избавиться от этой области необходимо проделать следующее:

BIP: Доступ к отчетам через URL

В общем виде адрес опубликованного в BIP отчета выглядит так:

http://server:port/xmlpserver/<каталог отчета>/<имя отчета>/<имя отчета>.xdo

где

server,port – имя и порт сервера, на котором запущен BIP;
xmlpserver – имя приложения (вы можете изменить его при ручном deploy приложения BIP);
Каталог отчета – папка, содержащая отчет;
Имя отчета – имя отчета (выводится 2 раза)

Для управления поведением публикуемого отчета можно (и нужно) использовать дополнительные параметры.

BIEE: Обновление XML,XLS-источников данных «на лету»

Во всех примерах, идущих в инсталляциях BIEE, репозиторий строится на XML-файлах.
Но нигде явно не настроена возможность обновления данных в этих источниках «на лету».
Чаще всего внешние файл – источники используются как связь с данными пользователей (выгрузка из 1С, какие-то Экселевские (куда без него) книги). И файлы эти имеют свойство изменяться.
Но, прописав связь с внешним файлом, вы заметите что любые изменения внесенные в данные файла не отобразятся в вашем «answer»-е. (Попробуйте на репозитории paint, например)
Как это исправить?


BIP: программный logout при доступе через URL

Что если вы используете BI Publisher в качестве инструмента отчетности в вашей информационной системе. И по каким-то причинам не используете стандартную поддержку SSO, а осуществляете разграничение полномочий в BIP c помощью передаваемых параметров URL'а с логином-паролем пользователя.
Может так случиться, что при наличии открытых окон браузера повторно переданные логин-пароль (уже отличные от предыдущих) не сработают.
Пример: вы зашли из внешней ИС в определенную папку с отчетами веб-интерфейса BIP под пользователем "user1", затем закрыли браузер, сделали logout из вашей исходной системы, НО где-то у вас "крутится" еще один браузер (картинки из "ВКонтакте" вы там смотрели...). И теперь при попытке зайти из вашей ИС под другим пользователем ("user2") вы получите сессию предыдущего пользователя.
Как этого избежать?

BIEE: подсказка информационной панели на основе картинки

Не всегда стандартный функционал подсказок информационных панелей BIEE удовлетворяет нашим потребностям.

Что если вам нужно отфильтровать "answer"-ы по значениям столбцов (переменных презентации) после нажатия на определенные области картинки. Подобный функционал реализован в BIEE только в виде подсказок уровня "answer"-а.

Далее я расскажу, как подобное реализовать для дашбордов.