business objects-1
How do I migrate universes between repositories?
Although it is not advisable to have multiple repositories, sometimes it is necessary. Migrating universes from one repository to another is not difficult, at least the first time.
Log into Designer, using the Key of the repository that currently contains the universe.
Import the universe.
Click on File - Save As, and, in the Save As dialogue box, check "Save for all users".
Click Save, and then Yes, to overwrite the existing universe.
Log back into Designer, using the Key for the destination repository.
Open the universe, and give it a new connection.
Export the universe.
In subsequent migrations, you will be prompted, during export, if you want to overwrite the existing universe. Click yes.
--------------------------------------------------------------------------------
What is synchronization?
Synchronization happens when BO creates two queries for you but doesn't really understand how to merge the result sets. Say you have a product table, an inventory table, and a sales table. You join products to inventory on product_code and place that join in the inventory context. You join products to sales and place that join in the sales context. Create the product code object from the product table, the inventory measure from the inventory table, and the sales measure from the sales table. When you create a report in the query panel, you'll get two JOINED queries. BO understands that it can write a query with inventory and product and another with sales and product and put them back together by product_code.
If you're getting synchronized queries, you've got messed up contexts, joins not in the proper contexts or objects in the query that aren't from dimension tables joined to both facts. It is very rarely ever acceptable to have synchronized queries.
--------------------------------------------------------------------------------
Now that my LOV lets me use ALL for all values, how do I get the ALL in the list?
Author: Dwayne Hoffpauir
There are two approaches - overriding the LOV SQL, and creating a universe object.
Overriding the LOV SQL
1. Press the SQL button in the query panel of the LOV
2. Add the phrase UNION SELECT 'ALL' FROM DUAL or similar dummy table for your particular database.
3. Click the "Do not generate SQL before running" checkbox.
Universe Object
1. Create a universe object defined as a constant 'ALL'
2. Associate it with the SYS.DUAL or equivalent table so it will parse (optional)
3. Press the combined query button in the query panel of the LOV (defaults to UNION)
4. Include the new universe object.
--------------------------------------------------------------------------------
How do I create cascading or nested prompts?
Author: Robert Metzker
Let's create a Series of Cascading Prompts for the Island Resort Marketing Universe. We'll simply work our way through the Resort class for a quick example. All of the prompts will be fairly similar, and I am going under the assumption that everyone has some Designer Experience.
Let's start at the Highest Level that we'd need a prompt for. That would be the Resort itself, since we need to know what Resorts we're interested in.
* Edit the List of Values for the Resort object.
* Check the Automatic Refresh Before Use option.
* Click Edit.
* Bring Country into the Conditions and set it to: in list Prompt('What Country are you interested in?')
* Click Save and Close
* Click Apply and edit the next LOV object.
Edit the Service Line and set up the same Prompt on Resort as: in list Prompt('What Resorts are you interested in?')
Again... Save and Close, ensuring that the Automatic Refresh Before Use checkbox is selected then Edit the next.
Service will have: Service Line in Prompt('What Service Lines are you interested in?') with the Automatic Refresh...
--------
Save this Universe and let's generate a report.
--------
Generate a report that pulls in the Country, Service Line and Revenue. Set a prompt on Service Line and apply a prompt as a condition asking: 'What Service Lines are we tracking?'
Refresh this report.
For the Service Line, click on Values.... A new Prompt should appear, asking about the Services. Again... click the Values button, and so on... and so forth.
Once you've answered the questions, you only need to hit the Values button when you need to backtrack to another level.
Although it is not advisable to have multiple repositories, sometimes it is necessary. Migrating universes from one repository to another is not difficult, at least the first time.
Log into Designer, using the Key of the repository that currently contains the universe.
Import the universe.
Click on File - Save As, and, in the Save As dialogue box, check "Save for all users".
Click Save, and then Yes, to overwrite the existing universe.
Log back into Designer, using the Key for the destination repository.
Open the universe, and give it a new connection.
Export the universe.
In subsequent migrations, you will be prompted, during export, if you want to overwrite the existing universe. Click yes.
--------------------------------------------------------------------------------
What is synchronization?
Synchronization happens when BO creates two queries for you but doesn't really understand how to merge the result sets. Say you have a product table, an inventory table, and a sales table. You join products to inventory on product_code and place that join in the inventory context. You join products to sales and place that join in the sales context. Create the product code object from the product table, the inventory measure from the inventory table, and the sales measure from the sales table. When you create a report in the query panel, you'll get two JOINED queries. BO understands that it can write a query with inventory and product and another with sales and product and put them back together by product_code.
If you're getting synchronized queries, you've got messed up contexts, joins not in the proper contexts or objects in the query that aren't from dimension tables joined to both facts. It is very rarely ever acceptable to have synchronized queries.
--------------------------------------------------------------------------------
Now that my LOV lets me use ALL for all values, how do I get the ALL in the list?
Author: Dwayne Hoffpauir
There are two approaches - overriding the LOV SQL, and creating a universe object.
Overriding the LOV SQL
1. Press the SQL button in the query panel of the LOV
2. Add the phrase UNION SELECT 'ALL' FROM DUAL or similar dummy table for your particular database.
3. Click the "Do not generate SQL before running" checkbox.
Universe Object
1. Create a universe object defined as a constant 'ALL'
2. Associate it with the SYS.DUAL or equivalent table so it will parse (optional)
3. Press the combined query button in the query panel of the LOV (defaults to UNION)
4. Include the new universe object.
--------------------------------------------------------------------------------
How do I create cascading or nested prompts?
Author: Robert Metzker
Let's create a Series of Cascading Prompts for the Island Resort Marketing Universe. We'll simply work our way through the Resort class for a quick example. All of the prompts will be fairly similar, and I am going under the assumption that everyone has some Designer Experience.
Let's start at the Highest Level that we'd need a prompt for. That would be the Resort itself, since we need to know what Resorts we're interested in.
* Edit the List of Values for the Resort object.
* Check the Automatic Refresh Before Use option.
* Click Edit.
* Bring Country into the Conditions and set it to: in list Prompt('What Country are you interested in?')
* Click Save and Close
* Click Apply and edit the next LOV object.
Edit the Service Line and set up the same Prompt on Resort as: in list Prompt('What Resorts are you interested in?')
Again... Save and Close, ensuring that the Automatic Refresh Before Use checkbox is selected then Edit the next.
Service will have: Service Line in Prompt('What Service Lines are you interested in?') with the Automatic Refresh...
--------
Save this Universe and let's generate a report.
--------
Generate a report that pulls in the Country, Service Line and Revenue. Set a prompt on Service Line and apply a prompt as a condition asking: 'What Service Lines are we tracking?'
Refresh this report.
For the Service Line, click on Values.... A new Prompt should appear, asking about the Services. Again... click the Values button, and so on... and so forth.
Once you've answered the questions, you only need to hit the Values button when you need to backtrack to another level.

<< Home