Page tree
Skip to end of metadata
Go to start of metadata

Download Presentation version of this wiki in Adobe Acrobat PDF file format



This page is now archived and is no longer applicable.

SAP Analytics Cloud 'Software as a Service' has been updated offering new features.

For the current 'Best Practices' please refer here

This page presents the theory and best practices for using SAP BusinessObjects Universes with SAP Analytics Cloud.

Please use this page in conjunction with this step-by-step example


Create dedicated (derived) universe

  • Performance is key for live access
  • Orientate Universe towards dashboard use-cases, not reporting
  • Need to simplify the universe

  • Easily re-use existing Universes by creating a linked universe
    • Business and Data Security Profiles are not inherited when linking universes
    • May need to re-create such Profiles on the Linked universe
  • Create a dedicated Universe folder
    • Enables SAP Analytics Cloud to list only Universes held in this folder (and sub-folders)
    • Benefit is improved ease-of-use within SAP Analytics Cloud


Hide Objects

  • Hide objects so that only one ‘run-time’ context is used
    • No need to delete objects, just hiding them is enough
    • Only a single run-time context is currently supported
    • There must be no context prompt
    • @Aggregate_Aware is supported and multiple contexts can be used for these objects, just ensure there’s no context prompt!

    • Multiple contexts resolved with JOIN_BY_SQL are not currently supported
    • Any Business Layer Security Profiles are ignored to determine the use of contexts when creating the model
  • Typically need to create multiple linked universes, one for each ‘fact’ table
    • Remember, live universe models cannot currently be linked to other models in a story
  • One language
    • The final model that is created in SAP Analytics Cloud to the BI Platform supports only one language
    • @Variable('PREFERRED_VIEWING_LOCALE’) will not change, it is fixed to the language used in the SAP Analytics Cloud connection to the BI Platform
  • Hide objects with unsupported data types: date, date/time
    • Instead may need to create ‘year’, ‘month’, ‘day’ numeric objects

  • Hide objects with unsupported projection types: count, count without empty
    • For these objects, create ‘sum’ objects that sum ‘1s’
    • All other projection types are supported, including “Database Delegated”
  • Hide objects that contain just ‘text’ in the SELECT without a TABLES value
    • All objects must be able to run on their own in order for the list of values to be generated
      • It is the objects’ SELECT that generate the list of values within the ‘Data Explorer’ interface as well as when adding filters to stories or input controls, rather than the associated ‘List of Values’
      • List of values are supported with @Prompt

This object has no tables lists in ‘Tables’.  It fails the requirements as the object will not run on its own, it requires another object to generate tables for the FROM clause. (@Aggregate_Aware objects also have no tables listed, but that is ok as they are calculated at run-time)


Customise Measures

  • Must have at least 1 measure in the universe

‘Move’ measures to the root folder

    • Measures within SAC appear with their full ‘path’ and this can be distracting

    • Need to create new measures in the Universe root folder

    • Hide the original measure objects


    • No need to specify object descriptions as they are ignored in SAC
    • Ensure all measures use an SQL aggregation function (sum, count, avg, max etc.)
    • Don’t forget to set the correct Projection Function on the new measures
    • Use @select and @where to re-use the SQL of the original objects
  • Measures appear in their folders within SAP Analytics Cloud which is a little distracting:


  • Recreating measures in the root makes them easier to consume in SAP Analytics Cloud:



Display Formats

    • Are currently ignored by SAP Analytics Cloud

    • All measures have a decimal format 0.00


    • As an example ‘Rows’ could only be a whole number and never a decimal
    • SAP Analytics Cloud has number formatting options at the Story level as shown above that may present the values in a more meaningful manner

Advanced Object Properties

  • Both ‘Results’ and ‘Conditions’ must be enabled to avoid an error within SAP Analytics Cloud
  • If using a derived universe, then hide the object and create a new object using @Select/@Where

Objects ignored

  • ‘Detail’ objects
    • If these are needed, create new dimension objects with @Select/@Where

Predefined Filter objects

  • Since there is (currently) no query panel for live connectivity there’s no opportunity to use the filter objects
  • Input Controls and ‘Advanced Page Filters’ provide the means to build complex filters, but these still may be short of existing Universe filters
  • Multiple universes, with fixed complex filters, may be needed to fulfil complex filter functions
  • Filtering on measures requires a universe prompt


Advanced Filter (can be story or page level): AND/OR, Include/Exclude, Equals/Does not equal)

  • Mandatory Filters with Prompts are currently not supported
    • Includes mandatory filters defined with Native SQL (@Prompt) and Business Layer prompts
    • Means that optional prompts are currently not possible
  • Mandatory Filters without Prompts are supported
    • Enables a universe to filter on a particular dataset or business use-case


  • Since there is (currently) no query panel for live connectivity so there’s no opportunity to define prompts
  • Instead they must all be defined with @Prompt or @Variable in the SQL
    • Business Layer (SELECT, WHERE) or in the Data Foundation
  • Limitations:
    • Cannot use a formula to set dynamic default value
    • Cannot use Index Awareness or List of Values based on Objects with Primary Keys
    • Single values answers, not multiple, for
      • Hardcoded list of values (so the selection mode is always ‘mono’, ‘multi’ is ignored)
      • When constrained mode is ‘Free’
      • Applies to Business Layer and Data Foundation
    • If multiple values are needed, use a list of values on an object
    • For multiple free text entry use multiple prompts with ‘OR’ in the SQL

ApplicationType.Application_Type_Name in @Prompt('Enter AppType','A’,{'CMC','BI launch pad’}, Multi ,Constrained,Persistent)
ApplicationType.Application_Type_Name in @Prompt('Enter AppType','A',, Multi,Free ,Persistent)


List of Values referred to by @Prompt

  • Needed to provide multiple value answers
  • All the type of ‘List of Values’ are supported
  • Limitations:
    • no hierarchy, no multi-column, no delegated search etc.
  • Best Practices for List of Values
    • Keep the list short to provide good performance in the user interface



ApplicationType.Application_Type_Name in @Prompt('Enter AppType','A','Characteristics\lov',Multi,Constrained,Persistent)
ApplicationType.Application_Type_Name in @Prompt('Enter AppType','A','Characteristics\lov’,Mono,Constrained,Persistent)

Prompt datatypes

  • All types are supported:
    • Alphanumeric (A)
    • Number (N)
    • Date (D)
    • and Datetime (DT)

    • Date provides a calendar pop-up
    • Datetime requires data entry


  • For ease of use,use Date over Datetime

  • Universe Prompts are visible in the SAP Analytics Cloud modeller
    • Select ‘Variables’
    • Currently no options available

How Prompts work within a Story

  • Upon creating a new story, all universe prompts are shown


  • Set a visualisation to use either story or chart variables
    • Allows for different visualisations to use different variables


  • Dynamic text can be added to show prompt/variable settings
    • Works at both Story and Visualisation levels

  • Result is two visualisations, each using a different prompt/variable
  • No need to create a model per set of variable values, rather re-use the existing model and change the variable on the story/visualisation



  • Multiple models using the same Variables will result in a prompt for each
    • Linking Variables is currently not supported for live universes
    • Tooltip shows ‘Remote systems are not compatible’

Validate and Optimise

Validate Universe

  • Run an integrity check on the universe before publishing
  • Resolve any issues

  • With either BI Launchpad or Web Intelligence Rich Client
    • Login as the user you will use from SAP Analytics Cloud
    • Create a new Web Intelligence document & new query off the Universe
    • Add every object into the query panel with no filters
    • Check the SQL has only 1 query with no ‘multiple paths’ shown

  • Add the ‘Query Summary’ to see the duration and number of rows returned
  • The query time shown is for all the objects and no filters, so its likely to be the worst performance from the perspective of an SAP Analytics Cloud user

  • To mimic a more typical query, build new queries with just measures and a few dimensions

  • It’s critical the query duration is as small as possible (10 seconds max)

  • If query duration is too high need to tune

Optimise Universe Performance

  • Considerations
    • Restrict the universe to a limited time period, or to a particular use-case
    • Add filters/prompts as needed until desired performance is obtained
    • Optimisation features you’ve not yet implemented, such as:
      • Use of summary tables with @Aggregate_Aware
      • In-line derived tables with BOUNDARY_WEIGHT_TABLE
        • These add a filter to tables before then being joined to other tables
        • Limitations
          • Can’t be used at the same time as @Aggregate_Aware
          • Can’t be used on a derived universe, need to ‘include’ the universe so to set table rows count
      • Move WHERE clauses into the FROM with FILTER_IN_FROM

Validate BI Platform authorisations


  • Save the document into Favorites Folder
    • A ‘BOELiveProviderTempFolder’ folder will be create here by SAP Analytics Cloud
    • This folder is used to store temporary Web Intelligence documents created through SAP Analytics Cloud workflows to access data
    • The name of the folder is defined in boe.temporaryDocumnetFolder=BOELiveProviderTempFolder
  • Delete the document

Create model in SAP Analytics Cloud

  • Give the model a meaningful name and description.
    • No spaces for model names allowed!
    • Use a naming convention to help identify what connection is which.



  • Dimension Setting
    • Define Groups for objects, so to group the objects making it easier for users
      • No spaces in group names allowed!






  • No labels