excel - 我可以通过Excel VBA查询SAP BO WEBI吗?我能做得足够快吗?

标签 excel vba business-objects business-objects-sdk

跟进我的previous post ,我需要能够以最快的方式查询一个包含 6M+ 行的数据库,以便该数据库可以有效地用作动态 Excel 报表的“远程”数据源。

就像我说的,通常我会将所需的数据存储在单独的(可能是隐藏的)工作表中,然后通过第二个“控制”表对其进行操作。这次,我的数据库的大小(即行数)阻止了我这样做(众所周知,Excel 无法处理超过 1,4M 行)。

我的 IT 人员制定的解决方案包括将数据保存在网络文件夹内的 txt 文件中。到目前为止,我设法通过 ADO 查询该文件(速度较慢,但​​无需维护),或将其用作填充索引 Access 表的源,然后我可以查询该文件(速度更快,但需要更多维护和其他软件)。

我认为这两种解决方案虽然可行,但都不是最佳的。另外,在我看来,所有这些都只是不必要的过度复杂化。该 txt 文件实际上是 SAP BO 的导出,IT 人员可以通过 WEBI 访问该文件。现在,我不能自己通过WEBI 以“动态”方式查询BO 数据库吗?

我想说的是,为什么我不能在需要知道的基础上直接从主要来源一次只提取一些信息,而不是将所有数据传输到批量处理辅助/重复数据库?

这种“动态”查询是否可能?或者“处理”时间会阻碍我的方法的成功吗?我需要这整件事真正感觉即时,就好像数据已经在那里,而我实际上并不是一直在检索它。

最重要的是,我可以通过 VBA 来完成此操作吗?不幸的是,这是我唯一可以访问的东西,我不能做这个 BO 端。

我要提前感谢你们给予我的任何帮助!

最佳答案

Webi(Web Intelligence 的缩写)是 Business Objects 的前端分析报告应用程序。您的 IT 联系人显然已经创建(或有权访问)这样的 Webi 文档,该文档通过宇宙(抽象层)从数据库检索数据。

可以使用 Web Intelligence 检索到的数据作为源并动态请求位,而不是一次性检索所有信息的一种方法是使用称为 BI Web 服务 的功能。这将使 Webi 中的数据作为 Web 服务提供,然后您可以从 Excel 中检索这些数据。您甚至可以通过添加提示来动态化此操作,这会对检索的数据施加限制。

看看this页面以获取快速概述(或通过 Google Web Intelligence BI Web Service 获取其他教程)。

另一种方法可能是使用 SDK,尽管当您尝试操作 Web Intelligence 时,您唯一的语言选择是 .NET 或 Java,因为 Rebean SDK(用于与 Webi 对话) ) 不适用于 COM(即 VBA/VBScript/...)。

注意:如果您使用的是 BusinessObjects BI 4.x,请记住 Rebean SDK 实际上已被弃用并由 REST SDK 取代。毕竟,这使得使用 VBA 访问 Webi 成为可能。

话虽如此,我不太确定这是否是最好的方法,因为您实际上引入了几个中间层:

  1. 数据库(保存您要检索的数据)
  2. Universe(语义抽象层)
  3. 网络智能
  4. 一种从 Webi 获取数据的方法(手动导出、网络服务、SDK 等)
  5. Excel

根据您的许可证和您想要实现的目标,XcelsiusDesign Studio (BusinessObjects BI 4.x) 也可能是 Excel 的可行替代方案前端,从而消除第 3 层到第 4 层(并取代第 5 层)。前者的后端实际上很大程度上基于 Excel(尽管没有 VBA 支持)。 Design Studio 允许使用 JavaScript 编写脚本。

关于excel - 我可以通过Excel VBA查询SAP BO WEBI吗?我能做得足够快吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9717206/

相关文章:

vba - Excel vba : setting a long variable for each object class dramatically increases execution time

sql - 使用 SQL 查询导入具有重复列名的 CSV

forms - 如何在 MS Access 的表格子表单数据 TableView 中设置列的大小

.net - 业务对象 DAL 设计

java - 需要有关包含 100 多个字段的领域对象建模的帮助

excel - 在最后一个事件工作表处重新打开工作簿

excel - 为什么我的 Sub 不能激活我想要的工作表?

vba - 在 VBA 中使用 powerpoint 的撤消命令

excel - 在单元格中强制使用美国货币(或其他国家/地区)

c# - 关注点分离——DAO、DTO 和 BO