我是Business Objects Deski的新手。我指的是一些较旧的报告,以了解其实际工作原理。
有一个报表,其中创建了多个数据提供程序,并且在报表主体中有一个表,该表利用了来自多个数据提供程序的少量字段。我可以看到每个DP背后的确切SQL,但是当分别运行它们时,我没有得到与BO级别的每个报表相同的数据。我也尝试加入他们,但仍然无法获得完全匹配。
所以,我的问题是,我想捕获从报表级别触发的EXACT SQL,以便当我直接在DB上运行它时,我得到的数据完全相同。
谢谢!
答案 0 :(得分:2)
在BO中生成报告要经过两次。
第1阶段涉及创建SQL语句,发送到数据库以及检索结果集。用BO术语表示,检索到的数据集称为“微立方体”。您可以在“查看数据”面板中查看微立方体的内容。
在第2遍中,来自一个或多个微立方体的数据将呈现为报表的可视形式。这不是使用SQL来完成的,而是使用BO自己的内部计算引擎-报告/文档级过滤器,公式,变量,聚合等,所有这些都在此过程中执行。
因此,您在数据提供者中看到的SQL(在大多数情况下)与实际发送到基础数据库的SQL相同(如果查询包含提示,则提示文本将替换为静态值)。
如果直接从Oracle中的数据提供者运行SQL,那么到达那里的结果应该与 microcubes 相匹配,但由于与第2遍相比未执行,因此它与报告中显示的数据不匹配。使用SQL。