Thursday, July 14, 2011

Cool stuff: SAP HANA and Microsoft Xbox Kinect

Capturing MDX statement in SAP BW for a BusinessObjects WebI/universe query

There are often times where you need to retrieve MDX query being generated while executing BusinessObjects Web Intelligence reports or universe queries. One of the scenarios where MDX can help is in analyzing the performance bottlenecks.

Following are the steps to capture MDX query in SAP BW. I am assuming that single-sign-on is in place and BusinessObjects enterprise IDs are mapped to the BW IDs.

1) Activate trace in BW for the user who is running the report in BusinessObjects environment. Go to transaction code RSTT and activate the trace.

2) Run the report/query in BusinessObjects (or perform the action which needs to be analyzed from performance standpoint.

3) Once done, deactivate the trace in RSTT.

4) Go to Trace Collection and open the corresponding trace record.


5) The next screen contains detailed information about the trace. It includes attributes(author, environment, etc.), recorded program objects, sequence information, etc.

6) Go to recorded program objects tab and locate the 'BAPI_MDDATASET_SELECT_DATA' program module. Open the same by double clicking it.


7) It opens up an ABAP Debugger session. Set a breakpoint at CL_RSR_MDX_COMMAND~START












 

8) Once breakpoint is set, continue debugging till you reach the breakpoint. Keep a watch on the N_T_MDX table.



9) Open the N_T_MDX table and you can see the generated MDX statements.



Thursday, July 7, 2011

List of Values(LoVs) caching in BO XI 3.1 SP3

Recently, I came across a weird behavior while working with BusinessObjects Web Intelligence. I have divisional hierarchy in the prompts for all the WebI reports. Now, inspite of having SSO as authentication mode for the universe connection, the LoVs were getting cached!! As a result, the users were able to see the divisional hierarchy nodes which they don't have access to.

It was a security nightmare. Alright, it was not that bad. Though users were able see and select the nodes, they were getting authorization error message. The users had to use 'Refresh values' option in the prompt window to get the correct LoVs. While technically good, it was not a very pleasant user experience.

This is a bug in BusinessObjects XI 3.1 SP3. By design, when SSO is defined as universe connection mode, the LoVs should not be cached. This was discovered only recently because it turned out that entire BO community had BI_ALL. I will not dwell much onto that but not sure why everyone had this super privilege. When we started removing BI_ALL, the issue surfaced.

We raised OSS with SAP. They acknowledged it as a bug and suggested to apply FP 3.2/FP 3.6 or even upgrade to SP4. They released a note 1519503 on this.

Here is the interesting part. We had a call on 06/22/2011 with BO support team on this and they acknowledged the issue as a product bug. Immediately after the call, SAP released the note :).