UNIVERSE BEST PRACTICES Rob Rohloff, OEM Sales Consultant
AGENDA Universe Defined Tips for Building the Universe Advanced Object Creation Tips Resolving Loops Conclusion SLIDE 2
WHAT IS A UNIVERSE? The Universe is a semantic layer that contains metadata (data about data) Translates the complexities of the database into business-friendly terms for end-users. Allows for correct SQL generation Allows manipulation of data based on the metadata and on the additional business logic in the Universe SLIDE 3 Copyright 2007 Business Objects S.A. All rights reserved.
UNIVERSE: WHAT DOES IT LET YOU DO? Simple, intuitive data analysis Report creation using business terms instead of SQL Reuse of business logic Automatic report drilling (by defining hierarchies) Multiple data provider synchronization SLIDE 4 Copyright 2007 Business Objects S.A. All rights reserved.
UNIVERSE: WHERE CAN YOU USE IT? Web Intelligence Universe Databases Desktop Intelligence Data Federator EPM LiveOffice Crystal Reports Query as a Web Service Xcelsius SLIDE 5 Copyright 2007 Business Objects S.A. All rights reserved.
AGENDA Universe Defined Tips for Building the Universe Advanced Object Creation Tips Resolving Loops Conclusion SLIDE 6
ADDING TABLES & JOINS Build your universe piece-by-piece Insert tables one at a time, that way it can be understood. Do not use the automatic universe creation tool. Using this wizard will build a universe that you do not understand. Take each table, join, cardinality etc one at a time. SLIDE 7
DEFINING OBJECTS Object and class naming Name in business terms Remember: you are trying to enable non-technical people to build their own reports Use object formatting When there is a need to format an object in the same way every time it is used. SLIDE 8
DEFINING OBJECTS Use complex objects Concatenate descriptions Translate codes Build common calculations into the universe whenever possible Build logic into your objects Use condition objects Users don t like to build conditions in the query Define measure objects correctly Not every number is a measure! SLIDE 9
AGENDA Universe Defined Tips for Building the Universe Advanced Object Creation Tips Resolving Loops Conclusion SLIDE 10
TIP 1: AVOID WHERE CLAUSES Problem: How to separate credit invoices from regular invoices into 2 separate objects? SLIDE 11
AVOID WHERE CLAUSES 2 Objects: USA Sales and Germany Sales WHERE sales.country = USA AND sales.country = Germany What happens if a user pulls both objects into a query? SLIDE 12
USE CASE STATEMENT INSTEAD WRONG! WHERE clauses are rarely the right answer! SLIDE 13
CASE STATEMENT CORRECT! CASE statements can bucket data SLIDE 14
CASE STATEMENT DEMO Demonstration SLIDE 15
TIP 2: CUSTOM LISTS OF VALUES Which is better? OR SLIDE 16
CUSTOM LISTS OF VALUES DEMO Demonstration SLIDE 17
TIP 3: USE AGGREGATION IN ALL MEASURE OBJECTS SELECT invoices.amount vs. SELECT sum(invoices.amount) Always perform aggregation in a measure. Why? Measures, by definition, are aggregated Although WebIntelligence will aggregate measure objects locally, the database is far more powerful. If the object does not contain a SQL aggregate function such as SUM stated in its SELECT clause, no GROUP BY clause will be generated SLIDE 18
TIP 4: USE RELATIVE DATES Users don t like to fill in date prompts every time they refresh a report Scheduling can be difficult SLIDE 19
RELATIVE DATES Which is more user friendly? SLIDE 20
RELATIVE DATES SELECT 'Last 7 Days' AS Date_Range, CONVERT(smalldatetime, { fn curdate() }) - 6 AS Begin_Date, CONVERT(smalldatetime, { fn curdate() }) AS End_Date FROM dbo.syscolumns SLIDE 21
TIP 6: USE DYNAMIC HTML IN OBJECTS SLIDE 22
DYNAMIC HTML DEMO Demonstration SLIDE 23
AGENDA Universe Defined Tips for Building the Universe Advanced Object Creation Tips Resolving Loops Conclusion SLIDE 24
LOOPS Definition: More than one path through the SQL f countries e Problem: customers suppliers Business Objects will not know what path to choose a orders b d order_lines c products SLIDE 25
RESOLVING LOOPS Three possible resolutions: Remove a join f countries e customers suppliers a orders d b order_lines c products SLIDE 26
RESOLVING LOOPS Three possible resolutions: Remove a join customer countries countries ALIAS countries Add an alias customers suppliers a orders d b order_lines c products SLIDE 27
RESOLVING LOOPS Three possible resolutions: CONTEXT 1: Suppliers Remove a join Add an alias Add contexts f customers a countries suppliers e orders d b order_lines c products SLIDE 28
RESOLVING LOOPS Three possible resolutions: CONTEXT 2: Customers Remove a join Add an alias Add contexts f customers a countries suppliers e orders d b order_lines c products SLIDE 29
AGENDA Universe Defined Tips for Building the Universe Advanced Object Creation Tips Resolving Loops Conclusion SLIDE 30
CONCLUSION The Universe is a powerful semantic layer that translates the database into business-friendly terms It is core to all Business Objects Information & Delivery tools Time should be taken to build it correctly using best practices Leverage the power of the Universe to build complex objects that further simplify the user experience SLIDE 31 Copyright 2007 Business Objects S.A. All rights reserved.
UNIVERSE BEST PRACTICES End