【发布时间】:2014-08-27 08:35:54
【问题描述】:
我想通过 api 获取报告宇宙,步骤如下所述
- 打开报告文档
DataProvider dp = dps.getItem(i); //get report data providers-
DataSource ds = dp.getDataSource(); //get data source universe.setFilePath(ds.getDomainName() + "/"+dp.getSource()+".unv"); //get datasource -- universe domain/path
大多数情况下,我得到了像这样的正确数据/DEV_folder/testUNV.unv
很少,结果是null/testUNV.unv 或\DEV_folder\testUNV.unv
知道为什么吗?
Business Objects 服务器版本为 Enterprise XI 3.1 SP7,使用 java SDK
谢谢乔。 但这可能解决不了我的问题,你提供了3种可能,见下面我的cmets
Universe 不在文件夹中 — 不,报告使用同一个 Universe,一个可以获取路径,另一个不能
Universe 位于您无权访问的文件夹中(尽管您有权访问该 Universe) — 不,使用我已读取和写入的同一 Universe 进行报告特权。
数据源不是 Universe——它是一个 Universe。
抱歉,由于缺乏声誉,我无法提供屏幕截图。
合同 - 第四方供应商同意书报告
/eSourcing_Dev/Contract.unv
/eSourcing_Dev/Project Save.unv
合同第四方供应商同意书报告
null/Contract.unv
null/Project Save.unv
合同 - 第 4 方供应商同意书报告和合同第 4 方供应商同意书报告连接到相同的 Universe,即 Contract.unv 和 Project Save.unv,但路径显示为空。
如果我在 BO Infoview 上打开合同第四方供应商同意书报告并再次保存报告,那么我可以获得正确的路径。
报告名称
项目?里程碑
宇宙
/eSourcing/Project Save.unv
\eSourcing/Project Save.unv
项目?里程碑报告获得 2 条不同的路径
/eSourcing/Project Save.unv
\eSourcing/Project Save.unv
它们应该是一个报表,2 个查询(2 个数据提供者),使用同一个 Universe。
我已经提供了我使用的实际代码/API,省略了循环。请检查我描述的步骤。 我正在尝试做的是批量获取所有报告及其宇宙。
【问题讨论】:
-
如果您指出您正在使用哪个版本的 BusinessObjects 以及哪个 API(.NET、COM、...),将会有所帮助。
标签: path business-objects business-objects-sdk