Прочитав статью и восприняв понимание продукта Oracle BI Publisher критически, а именно, на момент существовавшей тогда версии 11.1.1.7.150120, хочется заметить, что все, указанное в цитируемой статье можно было сделать на BI Publisher и доверить любому непрограммирующему пользователю. Плюс к этому, продукт имел trial и stand-alone версию. Поддерживался API на Java, уже был доделан вызов продукта как web-сервиса.
Чуть более интересный вопрос, который был получен от читателей моего блога: как в 12-й версии работать с переменными типа REF CURSOR для массовой миграции с самодельной отчетной системы на продукт Oracle BI EE 12с.
Рассмотрим код, который вернет REF CURSOR в зависимости от параметра.
create or replace PACKAGE REF_CURSOR_TEST AS TYPE refcursor IS REF CURSOR; pCountry VARCHAR2(10); pState VARCHAR2(20); FUNCTION GET( pCountry IN VARCHAR2 ) RETURN REF_CURSOR_TEST.refcursor; END; create or replace PACKAGE BODY REF_CURSOR_TEST AS FUNCTION GET( pCountry IN VARCHAR2 ) RETURN REF_CURSOR_TEST.refcursor IS l_cursor REF_CURSOR_TEST.refcursor; BEGIN IF ( pCountry = 'USA' ) THEN OPEN l_cursor FOR SELECT * FROM orders d WHERE d.customer_id IN (101,102); ELSE OPEN l_cursor FOR SELECT * FROM EMPLOYEES; END IF; RETURN l_cursor; END GET; END REF_CURSOR_TEST;
Данный код приводится в стандартной документации, но вызывает сложность в использовании, особенно в ограниченном количестве ресурса времени и наличии разработчиков мигрируемой системы.
Далее по шагам расписано, как его проще имплементировать.
Делаем модель данных с параметром.

Образец вызова NON-standard SQL, который вернет REF CURSOR. Само название уже вызывает непонимание при имплементации.

Проверка типов, обязательное задание sample.xml. Вернулось 7 строк из одной таблицы.

Проверка типов, обязательное задание sample.xml. Вернулось 108 строк из другой таблицы.

Пример автосгенерированной разметки на первом sample.xml.

Пример автосгенерированной разметки на втором sample.xml.

Структура XSL-FO тегов у первого типа REF CURSOR.

9.Структура XSL-FO тегов у второго типа REF CURSOR.

Задание условия на первом условном регионе.

Задание условия на втором условном регионе.

Подрузка готовой разметки в отчет.

На основании описанной в статье технологии, было мигрировано несколько сотен различных отчетов без радикальной переделки кода, с возможностью быстрой визуальной отладки и внесением измений в формирование отчетов.
Ее рекомендуется использовать при массовых миграциях "самописных" отчетных систем, базирующихся на Oracle, либо процедурах извлечения XML, совместимыми с описанным технологическим приемом.
