BO BI 4.2 SP5 Webi-通过VBA下载OpenDocument报告

2020-09-16 05:11发布

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

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


您好,我想知道是否可以通过Office Access或Excel通过VBA下载BO Webi报表(OpenDocument)。 现在,我可以登录到BO Webi并使用以下VBA代码打开所需的Webi OpenDocument报告:

[1]: https://i.stack.imgur.com /p30uV.png

私人子btnReportBO_Click()
 WebBrowser.navigate" https://xxxxxx.com/BOE/OpenDocument/opendoc/openDocument.jsp?sIDType=CUID&iDocID=FjkfNFtyyg4ABJEBAABnyuNvAFBWgRcs"
 结束子

 私有子WebBrowser_DocumentComplete(ByVal pDisp作为对象,URL作为变体)
 使用WebBrowser
 如果.Document.title =" OpenDocument",则
 .Document.all(" _ id0:logon:USERNAME")。Value = strUsername
 .Document.all(" _ id0:logon:PASSWORD")。Value = strPassword
 做:循环直到.Document.ReadyState =" complete"
 .Document.all(" _ id0:logon:logonButton")。点击
 万一
 结束于
 结束

那之后如何下载表格?

[2]: https://i.stack.imgur.com /OVe8k.png

我失败了,因为我不知道如何访问包含表的Frame或iFrame。 如果我通过右键单击-将源代码查看到桌面下载HTML源代码,则可以将表导出到Access。

如何通过VBA访问文档框架中的报表/表格?
或者如何将整个源代码下载到文本文件中?

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

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


您好,我想知道是否可以通过Office Access或Excel通过VBA下载BO Webi报表(OpenDocument)。 现在,我可以登录到BO Webi并使用以下VBA代码打开所需的Webi OpenDocument报告:

[1]: https://i.stack.imgur.com /p30uV.png

私人子btnReportBO_Click()
 WebBrowser.navigate" https://xxxxxx.com/BOE/OpenDocument/opendoc/openDocument.jsp?sIDType=CUID&iDocID=FjkfNFtyyg4ABJEBAABnyuNvAFBWgRcs"
 结束子

 私有子WebBrowser_DocumentComplete(ByVal pDisp作为对象,URL作为变体)
 使用WebBrowser
 如果.Document.title =" OpenDocument",则
 .Document.all(" _ id0:logon:USERNAME")。Value = strUsername
 .Document.all(" _ id0:logon:PASSWORD")。Value = strPassword
 做:循环直到.Document.ReadyState =" complete"
 .Document.all(" _ id0:logon:logonButton")。点击
 万一
 结束于
 结束

那之后如何下载表格?

[2]: https://i.stack.imgur.com /OVe8k.png

我失败了,因为我不知道如何访问包含表的Frame或iFrame。 如果我通过右键单击-将源代码查看到桌面下载HTML源代码,则可以将表导出到Access。

如何通过VBA访问文档框架中的报表/表格?
或者如何将整个源代码下载到文本文件中?

付费偷看设置
发送
4条回答
Violet凡
1楼-- · 2020-09-16 05:55

Hallo Lionel,

使用Web Intelligence REST API代替OpenDocument。

,这是您可以用作基础的快速和肮脏示例代码。 在此示例中,我从文档(id = 7131)导出报告(id = 1)为HTML

显式选项
 Dim sLogonToken作为字符串
 昏暗的sBaseURL作为字符串

 私人子Worksheet_Activate()
     sBaseURL =" http://myHost:6405/biprws"

     登录
     getDocument
     注销
 结束子

 私人子登录()
     昏暗sURL作为字符串,主体作为字符串,sRes作为字符串
     Dim oHttp作为对象
     Dim json解析为字典
    
     设置oHttp = CreateObject(" MSXML2.XMLHTTP")
     sURL = sBaseURL&"/img/v1/logon/long"
     oHttp.Open" POST",sURL,False
     oHttp.setRequestHeader"内容类型","应用程序/json"
     oHttp.setRequestHeader" Accept"," application/json"

     正文=" {""密码"":"" myPassword"","" auth"":secEnterprise,""用户名"":管理员}"
    
     oHttp.Send Body
     sRes = oHttp.ResponseText
    
     设置jsonParsed = JsonConverter.ParseJson(sRes)
     sLogonToken = jsonParsed(" logontoken")
    
     设置oHttp = Nothing
 结束子


 私人子注销()
     昏暗sURL作为字符串,sRes作为字符串
     Dim oHttp作为对象
     Dim json解析为字典
    
     设置oHttp = CreateObject(" MSXML2.XMLHTTP")
     sURL = sBaseURL和"/img/v1/logoff"
     oHttp.Open" POST",sURL,False
     oHttp.setRequestHeader"内容类型","应用程序/json"
     oHttp.setRequestHeader" Accept"," application/json"
     oHttp.setRequestHeader" x-sap-logontoken",sLogonToken
    
     oHttp.Send
     sRes = oHttp.ResponseText
     MsgBox sRes&"-状态:"&oHttp.Status
    
     设置oHttp = Nothing
 结束子


 私有子getDocument()
     昏暗的sURL,sRes作为字符串
     Dim oHttp作为对象
        
     设置oHttp = CreateObject(" MSXML2.XMLHTTP")
     sURL = sBaseURL&"/img/raylight/v1/documents/7131/reports/1"
     oHttp.Open" GET",sURL,False
     oHttp.setRequestHeader"内容类型","文本/html"
     oHttp.setRequestHeader" Accept"," text/html"
     oHttp.setRequestHeader" x-sap-logontoken",sLogonToken

     oHttp.Send
     sRes = oHttp.ResponseText
    
     Sheets(" Document")。Cells(1,1)= sRes
    
     设置oHttp = Nothing
 结束子

 

有关更多信息,请参见适用于Web的SAP BusinessObjects RESTful Web服务SDK用户指南 智能和BI语义层

导出报告("以列表模式导出报告","将报告导出为一系列页面"和"导出报告的页面或页面范围")

导出报告元素

 
CJones
2楼-- · 2020-09-16 06:12

我从您的问题中了解到,您想在Excel或MS Access中使用VBA来下载WebI文档/报告或报告的一部分。 以及随附的示例VBA代码可以做到这一点。

Alawn_Xu
3楼-- · 2020-09-16 06:06

您好Ayman,非常感谢您的回答。 不幸的是,我们只能在工作中使用SAP BusinessObjects BI Platform 4.2支持包5(WebI-浏览器)。

spaceman01
4楼-- · 2020-09-16 05:54

不幸的是,RESTFUL API似乎不可用。

但最终还是通过Microsoft HTML对象库实现了。 现在,我可以打开Webi OpenDocument报表,并通过VBA将表导入Office Access。

一周热门 更多>