使用RESTful Web服务API下载计划的Webi报告实例

2020-09-01 14:36发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中) [BO 4.2 SP7 RES...

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


[BO 4.2 SP7 RESTful Web服务],您好,我现在正在替换预定计划Webi报告并下载创建的实例的应用程序中的一段Java代码(PDF 或Excel)。 目标是删除所有Java SDK依赖关系,并仅使用RESTful Web服务来重建完整的工作流。 到目前为止,我已成功实现以下目标:

1。 使用/logon/long
2登录到BO Server。 使用/documents//parameters?lovInfo = false
3获取所需的报告参数。 通过POST到/documents//schedules
4,将报告安排为具有填充参数的"现在"执行。 通过使用/v1/cmsquery对创建的实例ID进行查询。 (查询将查找报告文档的SI_NEW_JOB_ID属性。)
5。 从/documents//schedules/获取进度状态以检查进度是否已完成。

到目前为止,所有方法都可以正常工作。 我可以在BO Web前端的报告的"历史记录"列表中看到新创建的实例,还可以在此处打开/下载Excel或PDF文件。
Java SDK应用程序的最后一步是下载用于以下目的的二进制实例文件: 客户端计算机上的本地存储。 我是通过以下解决方案做到的:

1。 通过执行上述步骤4中的查询,从IInfoStore中获取实例IInfoObject。
2。 通过调用IInfoObject.getFiles()获取IFiles列表。
3。 从该列表中获取第一个条目,并将其转换为IRemoteFile实例。
4。 通过调用IRemoteFile.getStreamingDownloadFile(0)获得IStreamingDownloadFile类型的二进制下载流。该流使我可以将所述二进制文件下载到运行该应用程序的计算机上。 不幸的是,到目前为止,我还没有成功用RESTful Web服务API替换此解决方案。 我认为它应该与

GET/infostore/folder/<实例的SI_ID>/file

一起使用,但实际上这似乎仅适用于我使用POST/infostore/上传的文件 文件夹/<文件夹ID>/文件。 通过计划报表创建的报表实例不是可通过这种方式访问​​的"文件夹"中的"文件"。 尝试此操作时,我收到"内部服务器错误(RWS 00070)"。

我还尝试通过使用实例的OpenDocument链接来获取文件,但这指向具有Javascript代码的HTML页面 ,只能使用它的是浏览器,不能进行低级二进制下载。

我错过了什么吗? 如何仅使用RESTful Web服务下载实例文件? 还是在BO 4.2 SP7中仍然无法实现?

最好的问候,

Jörg