SAP BusinessObjects (Universe) Interpreter for Apache Zeppelin

Overview

SAP BusinessObjects BI platform (universes) can simplify the lives of business users and IT staff. SAP BusinessObjects is based on universes. The universe contains dual-semantic layer model. The users make queries upon universes. This interpreter is new interface for universes.

Disclaimer SAP interpreter is not official interpreter for SAP BusinessObjects BI platform. It uses BI Semantic Layer REST API

This interpreter is not directly supported by SAP AG.

Tested with versions 4.2SP3 (14.2.3.2220) and 4.2SP5. There is no support for filters in UNX-universes converted from old UNV format.

The universe name must be unique.

Configuring SAP Universe Interpreter

At the "Interpreters" menu, you can edit SAP interpreter or create new one. Zeppelin provides these properties for SAP.

Property Name Value Description
universe.api.url http://localhost:6405/biprws The base url for the SAP BusinessObjects BI platform. You have to edit "localhost" that you may use (ex. http://0.0.0.0:6405/biprws)
universe.authType secEnterprise The type of authentication for API of Universe. Available values: secEnterprise, secLDAP, secWinAD, secSAPR3
universe.password The BI platform user password
universe.user Administrator The BI platform user login

SAP Interpreter Setting

How to use

  • Choose the universe
  • Choose dimensions and measures in select statement
  • Define conditions in where statement You can compare two dimensions/measures or use Filter (without value). Dimesions/Measures can be compared with static values, may be is null or is not null, contains or not in list. Available the nested conditions (using braces "()"). "and" operator have more priority than "or".

    If generated query contains promtps, then promtps will appear as dynamic form after paragraph submitting.

    Example query

    %sap
    
    universe [Universe Name];
    
    select
    
      [Folder1].[Dimension2],
    
      [Folder2].[Dimension3],
    
      [Measure1]
    
    where
    
      [Filter1]
    
      and [Date] > '2018-01-01 00:00:00'
    
      and [Folder1].[Dimension4] is not null
    
      and [Folder1].[Dimension5] in ('Value1', 'Value2');
    

    distinct keyword

    You can write keyword distinct after keyword select to return only distinct (different) values.

    Example query ```sql %sap universe [Universe Name];

    select distinct [Folder1].[Dimension2], [Measure1] where [Filter1]; ```

    limit keyword

    You can write keyword limit and limit value in the end of query to limit the number of records returned based on a limit value.

    Example query ```sql %sap universe [Universe Name];

    select [Folder1].[Dimension2], [Measure1] where [Filter1] limit 100; ```

    Object Interpolation

    The SAP interpreter also supports interpolation of ZeppelinContext objects into the paragraph text. To enable this feature set universe.interpolation to true. The following example shows one use of this facility:

    In Scala cell:

    z.put("curr_date", "2018-01-01 00:00:00")
    

    In later SAP cell:

    where
       [Filter1]
       and [Date] > '{curr_date}'