Common Ground – Terminology
Firstly, let me lay down some terminology in order to make this concept easier to discuss. “Classic BO” refers to any version of Business Objects between 5.X and 6.X. “BOXI” or “BO XI” refers to the Business Objects XI Release 1, 2, or 3 (R1/R2/R3), the injection of BO to the Crystal platform.
BO Classic Universe-Report Binding
In Classic BO if you wanted to replace a universe that was deleted from the repository or swap out one version of a universe for another version all that you had to do was place a universe in the repository which had the same name as the universe upon which the report was initially developed. The binding between report and universe was on name. For this reason universe name, for the most part, was the unique identifier for the universe. It made sense and it was a relationship everyone could understand regardless of technical background. When a report was selected from the repository its universe was also found based on the name of the universe listed in the report’s properties.
BO XI Universe-Report Binding
In BOXI, reports are bound to their universes not by the universe name, but by the unique identifier of the universe, the Cluster Unique Identifier (CUID). While this may seem a small change at first glance, one begins to see the full scope when one thinks beyond the simple workflow of universe creation and report creation. For example, what happens when you want to move the universe and report to another BOXI environment? What about if someone deletes the universe and reloads it from a back-up copy on their PC? What if you copy the universe to a different universe folder? Do you know how to answer these questions? Will your answers always result in preservation of the universe’s CUID?
Appearances are Deceiving
At first glance BusinessObjects has brought Full-client, WebI Intelligence, and Universes almost as they were in BO 6.5 (with a few improvements) into the the new Crystal platform with BOXI. The fundamental problem here is the phrase “as they were”. To the end user, it will appear that, despite the InfoView improvements and addition of multiple data providers to WebI, everything else is “as it was”. While familiarity is good, here it also creates the problem. Most end users do not realize that the binding mechanism between report and universe has changed, because for the most part everything else has not, and many training courses do not alert users either to this binding change. Therefore most users will follow development work flows based on the misconception that reports are bound to their universes based on universe name.
How to Maintain Business Objects XI Universe-Report Binding
Getting Started – Creating BOXI Universes and Reports
First of all you do not need to do anything special to create the proper CUID-level binding between the universe and the report. Creating a new report and selecting the universe will create the proper binding. In fact, if you copy a report, that is properly bound to a universe, you will end up with a duplicate report that is properly bound to it’s universe. Like I said before, if this is all that you are doing then you need not think differently about Universe and Report Binding. The problem is that most of us do more with reports and universes then just create them once, save them, and leave them alone.
Making Changes – Proper Universe Editing
Editing a report and a universe requires no special instructions as long as you obey some guidelines. Universes require the most delicate and precise handling. A universe that is imported from the repository, edited, and exported back to the repository will maintain it’s CUID and relationship to its reports. If you create a copy of the universe, using either CMC or Designer, the copy will receive its own CUID and it will not be associated with the original’s reports. Moving a universe between universe folders will maintain the CUID; HOWEVER if a universe of the same name exists in the destination DO NOT overwrite the universe. This will definitely cause the moved universe to receive a new CUID (this is true at least in Business Objects XI Release 2). NEVER USE THE OVERWRITE FUNCTIONALITY OF DESIGNER, terrible, unreliable results are nearly guaranteed. By the way, moving a universe cannot be done in CMC, BO Designer is required.
NOTE: A CUID is a unique identifier. It is impossible for two objects in the world (or same BO XI platform for that matter) to possess the same CUID, unless IMPORT WIZARD (or some other such tool) is used to “clone” the object from one environment to another.
Making Changes – Proper Report Editing
With regards to retention of the universe-report binding, editing a report does not require much delicacy at all, beyond that one would normally employ. However, if your goal is to retain the Business Objects report’s CUID (for reasons of cross-environment synchrony, for example) then there are some rules of engagement. A new CUID will only be created for a report if the report is duplicated, for example: the report is copied, the report is saved using “Save As”, the Import Wizard is used (various options could result in a duplicate with a different CUID).
NOTE: Once you understand the basics you will begin to ask yourself more profound questions such as… How can I tell if a report is not bound to its universe? Many unbound reports continue to work fine, why is that and if this is true why should I worry? How can a revert back to an old version of a universe without losing my universe’s CUID? Why do unbound reports spontaneously go berserk? These are all excellent questions that I will answer if you confirm to me (through your comments) that you are interested in the answers.
In order to maintain CUID parity/synchrony within your Business Objects XI environment and across multiple BOXI environments you will need to learn more than can be covered in the scope of a single article. If this article has piqued your interest or assisted you in understanding the basics, and you would like to learn more then please leave your comments. I could present a couple more focused articles on this topic. Nevertheless, I would also like to know if there is interest in a more comprehensive guide that we could make available for sale at a reasonable price. If so, I would invest more time in this (many hours).
This subject is really intersting and we have to deal with it since one year for one of our customer.
We have 4 different environments from development to production and sometimes we have troubles when transfering WebI documents from one environment to another.
We do not want to use Business Objects “Import Wizard” because we think this tool has too many options and could be dangerous. So we use a tool called EQM version 4.1 (Enterprise Quality Manager from NOAD BI) which could transfer universes and WebI documents from one environment to another. Even if the first version (4.0) was not really good, the new version (4.1) works fine. What I could say about the transfer is that the CUID of the same ressource between 2 environnements is NOT the same. EQM uses XIr2 SDK to change link between WebI documents and universe(s) when transfering documents. CUID of first environment universe and CUID of the same universe in the second environment are not the same, that’s the reason why EQM has to change link.
We tried to transfer manually (with “Import Wizard”) a document between environnements. What we have to do is to use a third environnement (C):
if we want to tranfer WebI doc from A to B, we do:
– transfer (import wizard) WebI doc and universe(s) from A to C,
– transfer (import wizard) destination universe(s) from B to C,
– change manually (in Java Report Panel) on platform C link between WebI doc and universe(s) in order to select universe(s) B instead of A,
– transfer (import wizard) WebI doc only (without universe(s)) from C to B with “update” option
– test WebI doc on B platform => OK.
As a conclusion, I could say that we 2 solutions to transfer documents without loosing link between doc and universe(s):
– Use import wizard with “Update” option between 2 platforms
– Use EQM
Interesting! I had not heard feedback from anyone about EQM before. It sounds as though it is not a purist’s choice tool.
We use Import Wizard to promote documents and reports between the environments. It does have a lot of options and choosing the wrong ones can REALLY screw up things, especially because you may not notice at first. “UPDATE” is the only way to fly with Import Wizard, you are right, unless you want to duplicate reports (this is an interesting use) or some other very special circumstances.
Thanks, I should write some more about Import Wizard. I would love to hear more from others about how they use it.
Thanks this article is really helpfull for a person from classic BO background. I am interested to know where to find the cuid of the universe and also the tablename to find it. It will be of great help if give an insight on the best way of transferring reports and universe between different environments.
Also if you can let me know of the other differences between classic bo and bo xi like the cuid it will be of big help.
Thanks for giving me the push I need to write about using Query Builder to detect unbound reports. I believe that your question will be well answered in our new article “Using BO Query Builder to Detect Report-Universe Binding Status“.
Your other two points are going to require their own articles too. In fact, I am thinking of writing a full-blown guide to address the topic of object migration between environments including best practices and methods to correct pre-exising issues. There is so much to cover on this topic.
Pingback: Detecting Report-Universe Binding Status with Query Builder | Business Objects Tips
Thanks for this article, it is very useful and it will help me in the future.
However, I’m faced with this problem. Due to a server problem I lost the universe files on the server and had to use a local copy and exported it to the server. The universe now exists again but the web-intelligence reports that used that universe are not linked to any universe anymore.
How do I point them to this ‘new’ universe? The universe has the same exact name as it did before.
Any tips / tricks will really help.
I am so sorry you lost the universe files. The one thing that would have helped you recover more easily here would have been a “BIAR” file backup created using Import Wizard. BIAR file backup’s are compressed binary files that you can create of most BO objects and it retains their inter-relationships and their unique identifiers. I should write an article about them, thanks for the idea.
However, unless you have a time machine a BIAR file backup is not going to help you now. Loading the universes back into the CMS will result in them getting new unique identifiers. They will also bring with them their short names and these will hopefully allow many of the Web Intelligence reports to find them at the moment they are opened. If this happens you are VERY lucky, but you have work that you MUST do.
For the reports that now find the newly replaced universes you need to open them and for each query reassign them to the proper universe. This may sound silly, but use Query Builder and you will see that your actions will bind the reports to the universe. Just be sure to scroll down and find the universe and make sure that it maps all of the objects (it should or you probably picked the wrong universe) and click OK and save.
For the reports that can’t find the newly replaced universes… bad news, the only method I am aware of which allows you to bind a report and universe is the WebI client. BO has yet to provide such a thing, but perhaps it could be built with an SDK. Maybe I should get in there and figure this out. So much to do, that probably won’t happen soon enough to help you out.
Good luck and please report back on your results and on any questions.
Pingback: Business Objects XI Unbound Report - Universe Not Found - WIS 00501 | Business Objects Tips
You might also want to read the articles listed in the Trackback/Pingbacks below. I just added a new related article.
This article is really interesting and very usefull. We are just doing the analysis to go to BOXI and so I was collecting all possible information to help it. and this site give a lots and most of it..Thank you everyone!!..
It is applied business objects and look forward to reading such articles. It will be great if someone can compile a book taking into consideration of practical day to day situations while implementing business intelligence and its tools.
what are the differences between break and section?
Hi meridianblues, please see this unrelated question answered here: What Are the Differences Between Breaks and Sections?
Thanks for your knowledge sharing article.What i did,I had created new version of a universe using designer with save as methodology,to do some modification so that my modification would not spoil any existing functionality.Now after all modification have implemented correctly,new universe is working fine.But the main problem is,all reports ( more than 100) are pointing to old Universe.What i want is,I want to save this modified universe again with the previous original universe properties so that all new reports and old reports will start running on new modified universe.Hopefully you understand my purpose.How would i achieve it.Need your help and advise.
Hi Sunil, this is an interesting requirement. I can understand the need. First of, you can do this with the SDK. I don’t have the specific code, but it certainly could be done there. The only other method that comes to mind are two tricks:
0) First thing, create a BIAR file backup of the universe and the reports using Import Wizard, test your backup to be sure it opens and you can see all of the desired objects.
Copy and Paste: the safest method
Follow the steps in “How to Backup a BO Universe and Maintain its CUID” and see if you can successfully replace your new universe by restoring it as if it were the old universe. I haven’t tried this, but it might work.
I hope this is on-topic – but I’ve read the Query Builder guide – thanks very much, lots of useful info in there – but oe thing I can’t determine is revealig the object_id of an object in the universe.
Is this even possible?
Any thoughts or guidance would be greatly appreciated.
Hi mishapk, I’m pleased that you found the Query Builder guide helpful. Perhaps we need to look at adding a Query Builder limitations section to the guide.
The CMS InfoStore (the data source of Query Builder) came from Crystal Reports. Universes, of course came from Business Objects. It seems that a design decision was made when building Business Objects XI such that all object information in universes and in reports would be stored in the binary file of that universe or report and not in the CMS InfoStore. Even many of the universe properties are only retrievable with the nearly deprecated COM SDK. So unfortunately, what you want to do using Query Builder is not possible. Sorry to be the bearer of bad news.
Yes, I’ve spent the morning combing over the Query Builder – which despite this I will use so it’s not all bad news – and was forming the same opinion.
Should you come across any method for showing the Object_ID of a universe object then I’d be grateful if you’d make a post – or of course should anyone else on the forum.
There are some VB/Script documentation tools around but they require a level of programming skills above my pay grade. Anyone with exposure to those with a yen to help out a BO guy might come across this thread.
Hi mishapk, you said “any method for showing the Object_ID of a universe object” and I just wanted to clarify that you are not talking about getting the object ID of the universe itself, which would be:
SELECT si_id, si_name
WHERE si_kind = 'Universe' AND
si_name = 'Your-Universe-Name'
…but rather you are talking about those unique identifiers that each object in the universe has. Correct?
No, reasonable request for clarification though.
It’s the detail of the objects, classes, dimensions, measures etc – and their object_ids not the object_id of the universe itself.
I have around 40 universes in BO 6x environment. I want to migrate those universes in the XI R3 environment. After migration i want to change the remodel the db..that is almost all the objects of the universe will undergo a change and will point to the new sql..that is they will point to the new table..What challenges i may face..
Hi Prashant, converting a universe from 6.x to XI 3.x is actually the easy part. I would not expect much fallout. However, the database changes will require LOTS of manually changes. Basically you will need to open each object separately and change its SQL. Of course, once you start doing this you may find that copy and paste will speed the process quite a bit. This will depend on the extent of the changes (for example table name changes would be better than table name changes and field name changes combined).
I would try to do these steps separately if at all possible. For example, upgrade first, test, then after this is complete change the database and adapt the universe. Good luck, it sounds tedious and will require good attention to detail.
I have an existing report based on few tables. In one of those tables I have added new columns and I have refreshed the universe structure and created those objects in the already existing class. After exporting the universe and launching my report I’m seeing an error: universe contains unresolvable objects. Is there any way to avoid this error and retain my report layout?
I would double-check your universe. Parse all of the modified/new objects first. Then you could start pulling in objects into a new report until you figure out which one is the trouble maker. Just debugging that’s all.
I am just a fresher and new to Business Objects. I just wanted to compare versions of BO with BO XI. Your post was very informative. Could you please give me some references from where I could build up a strong foundation in Business Intelligence. What exactly is the market value for same?
Hi Shrey, you are asking for something quite general and completely off the topic of this article. Please understand that I cannot justify my limited time spent answering such a request.
Your post are so helpful to our project. I would be very interested in the article you are creating to properly maintain Webi reports to Universe binding as we migrate to our next environments. What are the best practices for editing, importing,exporting universes without creating so many versions each time we do an export. Such an article is valuable and should require payment.
I’ve found this article quite informative and it has answered some of my questions. However, I’m still not sure what the most efficient/streamlined method would be to move Webi reports from one universe to another universe. Would it be similar to moving a crystal report from one DB to another? If so, would this be done in Web Intelligence?
Hi Ann T, to be honest this may be possible using the SDK, but I would not call that the best method as it could be VERY unreliable. The best method is not the quickest, but it is the most reliable. This is to open the report, go to the query panel, and change the universe there. If you would like some screenshots and details on this method let me know and I will put together a new article (I am overdue for a new one by now!).
I think this article is amazing. However, it would have been even better if the questions mentioned in the article could have been answered too.
I’ve found this article very informative. However i ran into an issue and was hoping to find a suitable solution. I moved a universe from one environment to another and now when i try to export the Universe in the new environment it takes too long. But, its working fine in the old environment. Any tips will really help.
Hi John, when you import the universe is the speed normal? I can’t really think of why this would be. I hope someone else can propose an idea.
Hope u doing fine.
I understand that webi reports are binded to universes primarily through CUIDs; however, sometimes this binding gets broken reports keep on working fine.
These reports possibly refer to the universes through their shortname or something as a secondary protocol.
We can clearly see this by going to CMC>Report properties>Default settings>Report universes.
When we go to such a report and repoint the right universe, we encounter a object mapping screen; validating which and saving the report bring the report in normal condition.
I have 2 questions here:
1. why does report breaks its link with universe based on CUID? (assumptions: no universe modifications or import-export activity)
2. How to scan for such reports which fall under the above said category.
I know I am a greeady fellow 😉 and I am eventually looking for a solution to repoint all reports in an environment to the universe datasource which they should be binded to. (may leave some reports which have some objects missing or mapping is improper issues)
Any help would be highy appreciated. 🙂
I just encountered the issue in few of our reports on BO 4.0.
What I am trying to figure out is can we rebind the reports to the universe? When I try to edit the report and change source on it, it does not do anything.
I know this is a very old post.
Still, Bumped up with a similar issue while migrating reports from BOXI3.1 to BOXI4.1.
The requirement of the user was to rename the Universe imported from XI3.1 and keep it with a new name in XI4.1.
However, there are issues with the WEBI reports which uses ‘Custom SQLs’. When refreshing these reports, it would throw an error like ‘Universe Not Available’. When tried to modify the reports, the edit data would bring up a blank page with message ‘No business layer found’.
If the universe is renamed back to its older name, these reports run without any issue.
Is there any suggestions/advice to get around this issue.
Thanks in Advance,
Great article. Timeless info for any Designers. Here is my question…
I’ve imported a universe to the default import folder, made some edits, saved, made some additional edits. Now I needed to do some work offline so I swapped in a personal connection and did a ‘Save As’ with ‘Save for all users’ checked. I’m nervous that even though my universe was saved to the original location with the same name, the ‘Save As’ assigns a new CUID. For my future knowledge, can you comment on whether this workflow for offline editing does in fact create a new CUID? To be safe I deleted my revised universe, imported a fresh copy, and started over with my revisions which luckily weren’t too drastic and easily replicated.
Hey Mike, it’s been a while since I’ve played with workflows like that. Could you try it out on a test universe and see what happens? I don’t have access to a BO XI 3.1 environment any longer.
I am curious why no one complain about the SAP BO function. SAP put that much of control in the BO designing tool (custom SQL) that really slowing down the development and increased the maintenance effort.