我想通过 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 种可能性,请参阅下面的评论
Universe 不在文件夹中— 不,报告使用相同的 Universe,一个可以获取路径,另一个不能
Universe 位于您无权访问的文件夹中(尽管您可以访问该 Universe) — 不,报告使用相同的 Universe,我具有读取和写入权限。
数据源不是一个 Universe——它是一个 Universe。
抱歉,由于缺乏声誉,我无法提供屏幕截图。
合同 - 第四方供应商同意书报告
/eSourcing_Dev/Contract.unv
/eSourcing_Dev/Project Save.unv
合同第四方供应商同意书报告
空/合同.unv
空/项目保存.unv
合同 - 第 4 方供应商同意表报告和合同第 4 方供应商同意表报告连接到相同的 Universe,即 Contract.unv 和 Project Save.unv,但路径显示为空。
如果我在 BO Infoview 上打开合同第四方供应商同意书报告并再次保存报告,那么我可以获得正确的路径。
报告名称
项目 ?里程碑
宇宙
/eSourcing/项目保存.unv
\eSourcing/项目保存.unv
项目 ?里程碑报告获得 2 条不同的路径
/eSourcing/Project Save.unv
\eSourcing/Project Save.unv
它们应该是一个报告,2 个查询(2 个数据提供者),使用同一个 Universe。
我已经提供了我使用的实际代码/API,省略了循环。请检查我描述的步骤。我想要做的是批量获取所有报告及其宇宙。