Pull to refresh

Автоматизированное получение отчетности OBIEE клиентом

Reading time2 min
Views744

Иногда возникает задача получения отчета на рабочем месте клиента без использования интерактивного средства взаимодействия в виде браузера.


Во времена Oracle Reports подобная задача решалась через применение утилиты rwclient. Что можно применить для подобного в Oracle BIEE? — используем предоставленный API REST-интерфейс для Oracle BI Publisher:


  1. Создаем отчет, пусть он будет будет доступен в каталоге: /~scott.tiger/Example;
  2. Запросом через утилиту curl получаем ответ сервера, сохраняя его в файле:

    curl -X POST -u login:password  -o report_out.xlsx -H "Content-Type:multipart/form-data" -v -F 'ReportRequest={"attributeFormat":"xlsx","attributeTemplate":"Publisher Template"};type=application/json' http://hostname:port/xmlpserver/services/rest/v1/reports/~scott.tiger%2FExample/run
  3. Так как содержимое ответа в документе report_out.xlsx это ещё не Excel, а multipart-документ (см. RFC 7578), то обрабатываем документ, откусывая излишние детали:

    perl -i -pe 'BEGIN{undef $/;} s/.*\r\n\r\n(.*?)\r\n--Boundary[^\n]*?--\r\n/$1/sm' report_out.xlsx
  4. Убеждаемся в работоспособности отчёта, открывая его через Excel на клиентской машине.
  5. Cклеиваем наработки вместе через пайп и получаем готовое решение:

    curl -X POST -u login:password  -H "Content-Type:multipart/form-data" -v -F 'ReportRequest={"attributeFormat":"xlsx","attributeTemplate":"Publisher Template"};type=application/json' http://nameserv:port/xmlpserver/services/rest/v1/reports/~scott.tiger%2FExample/run |  perl -pe 'BEGIN{undef $/;} s/.*\r\n\r\n(.*?)\r\n--Boundary[^\n]*?--\r\n/$1/sm' > report_output.xlsx
Tags:
Hubs:
Total votes 4: ↑3 and ↓1+2
Comments0

Articles

Information

Website
www.rdtex.ru
Registered
Founded
Employees
101–200 employees
Location
Россия