Enterprise DW Lead & Head of Consulting (SA)
Bluefin Solutions
Integrating BW Queries with Xcelsius without BOXI
16 Jun 2010
Business Intelligence (BI), Business Objects, Dashboard and Presentation Design (Xcelsius)
Let's face it, the SAP BW front-end tools (not including Business Objects here) have never really scored fantastically on being intuitive or visually appealing. They could probably best be described as adequate in these categories, and despite being otherwise powerful and feature-rich analysis tools this has often resulted in a less than enthusiastic adoption by end-users.
On the other hand we have Business Objects Xcelsius that is capable of generating very sexy looking (only a true IT geek uses this word to describe technology) and intuitive dashboards. It's no wonder that many BW clients have explored the option of using Xcelsius as a visualisation tool for their BW data.
However, many have also abandoned the idea when faced with the prospect of having to implement the SAP Business Objects Enterprise Platform architecture to facilitate this, or having to upgrade the production SAP NetWeaver instance to 7.0, EHP1 (also called 7.01) with SP 5 to exploit the direct connectivity that comes with the BI Consumer Services (BICS). This is especially true when they may only have a handful of dashboards they might use it for.
Fortunately that's not the end of the story. Read on to find out more about an alternative solution that we implemented for one of our clients.
Aren't open standards brilliant?
Oh yes, they are! Especially when the developers of software like SAP and Business Objects choose to adopt them. For our solution it's all about web services. SAP BW (version 7.0 and up) includes a standard web service for calling SAP BW queries. At the same time Business Objects Xcelsius supports acquiring data from web services via a 'Web service' data connection. This enables us to get data out of our SAP BW system into an Xcelsius dashboard without needing any other integration architecture. Seems simple enough and in principle it is, but as with all things tech there are a few catches.
Getting to your BW queries
There are a number of aspects that need to be addressed when trying to access your BW queries from an external system.
Firstly, you need to consider any potential licensing impacts carefully and it's best to have an open conversation with your SAP account manager on the topic. What the implications might be will depend greatly on how and by whom the Xcelsius dashboard will be used and the existing licensing framework you have with SAP. A detailed discussion of this is outside the scope of this blog and we will focus on the technical aspects of the solution instead.
Secondly, authentication or single sign-on between the two systems. SAP have done a great job here by providing an extensive range of options around security that can be configured on a service-by-service basis. Options range from having an unsecured service to encrypted Username/password elements in the document header to SAP logon tickets to SAML Assertions and more. Again, the chosen solution will be influenced by a number of factors including your internal security policies and how you choose to expose the Xcelsius dashboard to users i.e. within SAP Portal, within a 3rd party portal (e.g. MS Sharepoint or IBM Websphere Portal) or even embedded in a slide deck attached to an email.
Finally, the required format of the data to make it useable in the receiving system. This is probably the biggest catch with this approach. The ability of Xcelsius to map to elements of complex web service response messages is limited. Unfortunately, the standard web service for accessing BW queries delivers a response message that is about as complex as you would expect from any web service. So out-of-the-box, it does not lean itself to being consumed by Xcelsius. In fact, you can't really use it for any queries that have more than one column of data in the results. To be fair though, dashboards are typically comprised of small sets of highly aggregated data so it is still useful even with this limitation.
Xcelsius-friendly output
However, to get around this limitation we created a 'wrapper' function module around the standard function module that is the engine beneath the standard web service. We used this wrapper function module to simplify the output from the standard function module so that it is easier for Xcelsius to interpret. We then generated a bespoke web service based on our wrapper function module.
This approach gained us the ability to embed queries with multiple output columns in Xcelsius, but also comes with some limitations. Most significantly, the number of columns in the output structure is fixed. But again, when it comes to data for dashboards you are typically working with a small number of data sets (less than 15 columns). So fixing the output structure to a maximum of e.g. 20 columns should cater for the vast majority, if not all requirements. From a purist perspective it's not an ideal solution, but from a pragmatic perspective it does the trick.
Summary
The fundamental tools for integrating SAP BW queries with Xcelsius dashboards are available as standard within these applications. The use of web services provides and alternative integration model for customers that do not require the full set of features provided by the BOXI architecture, but still desire to exploit Business Objects Xcelsius to visualise their BW data.
Comments
Velington 02 Feb 2012
Hi,
I creating a Dashboard based on SAP NW Connections, which will be finally viewed through BO Portal. The only option for me is to create a hyperlink in Infoview.
Have you encountered such scenarios? And could you tell me how difficult it is to implement a SSO between SAP NW and BO Portal such that the Dashboard opens without prompting for username and Password?
Thanks for any inputs.
Regards,
Velington Fernandes.
Herman Ohlhoff 28 Feb 2011
Hi Thorsten,
Thanks for your post. I understand your frustration and agree with it to some extent.
However, to be fair I think SAP's published solution for this problem is to implement SAP BusinessObjects BI Platform, which of course supports the integration of SAP Queries into Dashboard Design (Xcelsius) and other SAP BusinessObjects tools.
The above solution is a workaround that allows some integration for organisations that cannot justify the additional costs of the full SAP BusinessObjects platform based on their requirements.
One can also understand that SAP are not going to invest time and effort in developing and publishing solutions that may underminde their recommended BI architecture. So I think it's up to us as the developer community to publish alternative approaches where needed (hence my blog).
Good luck with your implementation and please let me know if you have any other specific questions.
Regards,
Herman
Herman Ohlhoff 28 Feb 2011
Adeline,
Thanks for your question. The wrapper function module is simply used to format the output of the standard SAP function module (RRW3_GET_QUERY_VIEW_DATA) into something that is easier for SAP BusinessObjects Dashboard Design (Xcelsius) to interpret.
The maintenance required with be similar to any bespoke function module implemented. However I fully expect that it will continue to work as expected with any upgrades to 7.3 as the core logic of the query execution resides in the SAP Standard code.
Hope this helps.
Regards,
Herman
Adeline Roux 26 Feb 2011
Hi Herman
Thanks for this concise summary on this subject. Fully aligned and having the same headaches to keep IT developers life simple!
We are at stage to go for Xcelsius with direct connection to BW 7.01, successfully ran a POC. Now I'm looking at best practices to keep the maintenance simple. So I'm really keen to learn more about the wrapper you built around BICS webservice. What does it really bring and how do you foresee its maintenance (eg, with 7.3)
Thanks and best regards
Adeline
Thorsten Klingbeil 07 Feb 2011
Hi Herman,
many thanks for this really interesting article! :-)
I'm currently working on the same problem. Our reverse proxy is preventing us from using the standard BICS Connection between BW and the Xcelsius Client (hardcoded Service URL as Flash Parameter (BICSWS_ENDPOINT) in the Portal Frame Page) :-(
Unfortunately the XMLA WebService does not connect to Xcelsius because of an incorrect WSDL implementation. So, I also need to code a function module which is simulating the XMLA Service (based on MDX Statements - I'm pretty much finished with the core functionality - now comes the fun part like formatting, value help, hierarchies, etc ... :-)
However I think it's really a shame, that SAP ist not publishing a proper solution for this problem!
I woluld be really interested in an experience exchange :-)
Best regards
Thorsten