I have couple of doubts. I would appreciate, if some one can through some light on these.
1. Where does all the BEx variables stored, if they are stored in BW, then in which transparent tables these are stored.
2. Where does the properties of the BEx InfoObject in the BEX Query are stored, if they are stored in BW, then in which transparent tables these are stored.
Thanks in advance,
I an working with Excel.
I would appreciate if you can guide me how I can excercise control dynamically, like hiding some columns and displaying thern when I want them.
How can I access the query definition which is store in an Excel work book.
Thanks in advance,
Are you ready for have some fun?!?
With BW Analyzer loaded and one of your BW workbooks open in Excel do the following:
First, launch the Visual Basic Editor. You do this either on the Excel Menu Bar (Tools >> Macro >> Visual Basic Editor); or, by pressing Alt + F11.
Be sure that the Project Explorer Window is visible. If not, on the VB Editor toolbar select View >> Project Explorer; or, press Ctrl + R.
Projects are listed alphabetically. Probably the first object you see in the Project list is SAPBEX(sapbex.xla). This is the BW Analyzer. You can't open it, but you can explore it using the VB Editor Object Browser. More about that later.
For now, locate your workbook. It will probably be named VBAProject(name of workbook.xls). If there is a "+" to the left of the project name, click on the + to expand it.
You will see at least two types of objects:
+ Microsoft Excel Objects
Expand them both.
Among the Microsoft Excel Objects, you will see worksheets, maybe charts, and the object for the workbook itself (ThisWorkbook).
Each sheet has two names. The first is the codename. The second is the name you see on the tabs when you are in Excel.
Notice that there are two more worksheets here than you see in Excel. One of these has a "tab name" of SAPBEXqueries; the other is named SAPBEXfilters.
There is nothing you can do in Excel to make these sheets visible. They are not ordinary hidden worksheets.
There are two ways you can make them visible:
1. using the Properties Window
2. using Visual Basic code
If the Properties Window is not visible, on the VB Editor toolbar select View >> Properties Window; or, press F4. Double-click on the worksheet object to select it. Then, change the Visible Property to Visible.
Or, use this line of code (for example):
Sheets("SAPBEXqueries").Visible = True
to return it to its original condition, the VBA command is:
Sheets("SAPBEXqueries").visible = xlSheetVeryHidden
Now I must tell you that anything you do from this point on is not covered by your warranty. Don't worry, you can't break BW. But, you can create a beautiful report that stops working with the next system patch that gets installed.
Now that you are looking at these sheets, you probably would like to have a guide as to what they contain. I posted some of that a few months ago. I can't locate the posting right now. You can do a search on my name to find it. Or, if you wait, I'll find it and post the link to this thread.
But ... there is a better way than reading my old posting. Try this ... refresh a query in Excel. Then, come back to the Visual Basic Editor. Select the BW Analyzer Object ... SAPBEX(sapbex.xla). Then, on the VB Editor menu, select Run >> Run Macro (F5); scroll down to sapbexDebugPrint and run that macro. It will create an amazing workbook that tells you everything you could ever want to know about the query you just refreshed. (Including a complete list of valid OLAP fire commands.)
By comparing the various worksheets in this amazing workbook with the tables in the very-hidden SAPBEXqueries worksheet, you can learn what just about every one of those tables is all about.
But ... before you get too carried away with making changes to the values on those sheets ... I have found that I can do almost everything I need to do without ever needing to touch those very-hidden worksheets.
What I use mostly are the API functions. Some of these are listed in the BW documentation. But, there are about as many API functions that are NOT documented. To find the API functions ... in the VB Editor, select the BW Analyzer object ... SAPBEX(sapbex.xla). Then, select on the VE Editor menu bar, select View >> Object Browser (F2). Change the Library to SAPBEX (this does not work unless you have already selected the SAPBEX oject). In the Classes column, scroll down to xBEXapi. You will now see listed all of the API functions and subroutines.
The Object Browser tells you ALMOST everything you need to know. Most people need a few examples to get them started. You can look at my postings here to find examples. Or, just do a search on "SAPBEX". Almost every hit will lead to a discussion and/or example of these API functions.
When you have more questions, write back.
I found the link I was looking for. This will give you an idea of where some of the information can be found on the very-hidden worksheets that I mentioned in my post an hour ago.
Thanks a lot for your detailed message. I am going through it.
From this I can understand what level of research you have done. I am really grateful to receive your elaborate reply.
Hope I can get back to you in case of any doubts.
Thanks a ton once again.
I have Posted this problem. I saw your explanation on the variable usage in BEx work books and thought to dicuss with you.
I am a problem facing with BEx work book. I have a work book with 2 similar queries. Both have a same set of 4 variables out of which 2 are defined are Mandatory and 2 are optional variables. I have noted both the queries work fine when tested individually but when I embed them in a work book, on 2 worksheets, the system executes work book for a very long time. I have noticed that the parameter values, which are common to both queries are not being passed to one of my query. I am guessing this might be the reason for my work book taking too long. How to make sure that the variable values are passed to both the queries of the work book ?Any suggestions is greatly appreciated,