【问题标题】:Accessing reports in OBIEE from a Java Program从 Java 程序访问 OBIEE 中的报告
【发布时间】:2012-04-29 14:53:42
【问题描述】:

我正在使用 Netbeans 开发一个 Java 应用程序,它将从 OBIEE 10G 上的 BI 服务器获取报告并使用 Java 应用程序将其显示给客户端。谁能建议我执行此操作的适当步骤以及如何开始。

【问题讨论】:

    标签: java business-intelligence oracle-adf obiee bi-publisher


    【解决方案1】:

    首先,您将从 Presentation Services 而不是从 BI 服务器获取报告。 BI 服务器是一个只有 SELECT 语句的数据库,而 Presentation Service 使用此 SELECT 来创建和格式化报告。

    要将来自 BI Presentation 服务的报告集成到其他应用程序中,您可以使用:

    链接指向相同的文档(集成商指南)。这是为 11g 编写的,但它也适用于 10g。

    干杯 妮可

    【讨论】:

      【解决方案2】:

      您的问题不清楚;您是否尝试从 OBIEE 调用 Java 方法?

      如果是: 您可以通过创建链接到操作的代理来做到这一点。 Action 可以调用 java 方法(在 EJB 中)。通过将代理挂钩到操作,您可以将其安排为作业。

      【讨论】:

        【解决方案3】:

        虽然可以使用 web 服务和 GO url 来创建您的 web 应用程序,但这样做是一种非常困难的方法。如果您有选择,请使用最新的 JDeveloper 11g,然后使用 these steps 将您的 Answers Reports 或 Dashboards 拖放到 .jspx 页面。这很简单,只要您熟悉 JDeveloper,只需几分钟而不是几天即可完成。

        编辑:如果您仍想使用 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);
        

        【讨论】:

        • 我正在实现一个使用 OBIEE 的 HTMLViewService 的 Java 应用程序。 XMLViewService 工作正常,但 HTMLViewService 只是显示旋转加载程序,然后呈现报告(在“加载嵌入式报告错误”的源中出现错误)。 OBI 服务器和 Java 应用程序位于不同的域中,所以我认为可能是这样。我假设我必须使用 setBridge() 方法来解决这个问题。有人可以帮忙吗?代码示例将不胜感激。
        • 更正我最后的评论:报告永远不会加载,旋转的加载器只是无限期地旋转。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-05-10
        • 2014-02-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多