2012-04-29 3 views
2

Я разрабатываю приложение Java, используя Netbeans, который будет получать отчеты с сервера BI на OBIEE 10G и отображать их клиенту с помощью приложения Java. Может ли кто-нибудь предложить мне соответствующие шаги для этого, а также как начать с этого.Доступ к отчетам в OBIEE из Java-программы

ответ

1

Прежде всего, вы получите отчет из служб презентаций, а не с сервера BI. Сервер BI - это база данных с инструкцией SELECT, тогда как Presentation Service использует этот SELECT для создания и форматирования отчетов.

Чтобы интегрировать отчет службы Presentation BI в другом приложении, вы можете использовать:

Ссылки приводятся в той же документации (Руководство интегратора). Это написано для 11g, но оно также будет работать в 10g.

Приветствия Нико

1

Ваш вопрос не понятен; Вы пытаетесь вызвать метод Java из OBIEE?

Если да: Вы можете сделать это, создав агента, связанного с действием. Действие может вызывать Java-метод (в EJB). Подключив агента к действию, вы можете назначить его как задание.

1

Хотя для создания вашего веб-приложения можно использовать веб-службы и URL-адрес GO, это очень трудный способ сделать это. Если у вас есть выбор, используйте последний JDeveloper 11g, а затем используйте these steps, чтобы перетащить отчеты об ответах или панели мониторинга на страницу .jspx. Это просто, может быть сделано за несколько минут, а не дней, если вы знакомы с JDeveloper.

EDIT: Если вы все еще хотите использовать Netbeans, вот фрагмент кода, который поможет вам начать работу. Не забудьте прочитать и понять HtmlViewService SOAP API in the OBIEE integration doc, прежде чем принимать его на производство.

import oracle.bi.services.soap.* 

SAWSessionParameters sessionParams = new SAWSessionParameters(); 
sessionParams.setUserAgent("Mozilla/...."); //Copy the exact agent from your Firefox menu Help > About 

javax.xml.rpc.ServiceFactory factory = ServiceFactory.newInstance(); 
SAWSessionServiceSoap sessionService = ((SAWSessionService) factory.loadService(SAWSessionService.class)).getSAWSessionServiceSoap(); 

HtmlViewServiceSoap htmlService = ((HtmlViewService) factory.loadService(HtmlViewService.class)).getHtmlViewService(); 

AuthResult authResult = sessionService.logonex("replace_with_your_username", "replace_with_your_password", sessionParams); //You should reuse the session for multiple HTTP Requests from the same user 
String sessionID = authResult.getSessionID(); 

StartPageParams pageParams = new StartPageParams(); 
pageParams.setIdsPrefix("replace_with_your_prefix"); 
String pageID = htmlService.startPage(pageParams, sessionID); 

ReportRef report = new ReportRef(); 
report.setReportPath("replace_with_full_path_to_your_report"); 
htmlService.addReportToPage(pageID, "replace_with_your_report_name", report, null, null, null, sessionID); 

String reportHTML = htmlService.getHtmlForReport(pageID, "replace_with_your_report_name", sessionID); 
System.out.println(reportHTML); //Here's the report that you are looking for 

htmlService.endPage(pageID, sessionID); 
+0

Я реализую приложение Java, которое использует HTMLViewService из OBIEE. XMLViewService работает правильно, но в HTMLViewService показан только вращающийся загрузчик, а затем отображается отчет (с ошибкой в ​​источнике «Ошибка встроенного отчета»). Сервер OBI и приложение Java находятся в разных доменах, поэтому я думаю, что это возможно. Я полагаю, что для решения этой проблемы мне нужно использовать метод setBridge(). Может кто-нибудь помочь с этим? Пример кода был бы оценен. – Josh

+0

Исправление к моему последнему комментарию: отчет никогда не загружается, вращающийся загрузчик просто держится бесконечно. – Josh