Skip to Content

SAP BI 4.2 SP3: What’s New in Web Intelligence and Semantic Layer SDK


Along with SAP BI 4.2 SP3 enhancements in Web Intelligence and Semantic Layer (see SAP BI 4.2 SP3: What's New in Web Intelligence and SAP BI 4.2 SP3: What's New in Semantic Layer), their SDKs have also been extended to better address developers’ requirements and expose new capabilities.

Web Intelligence RESTful Web Services

Web Intelligence REST Web Services allow you to programmatically create, edit or manage Web Intelligence documents.

The corresponding URL is:


  • Support of shared elements

The corresponding URLs are:



  • Support of custom elements
  • Document occurrence, to manage several instances of the same document simultaneously

The corresponding URL is:


  • Some new options have been added for scheduling
    • Schedule to Secure FTP, SMTP and text format
    • To destinations
  • Expose session details (user ID, CUID, name, timezone, preferred viewing locale and product locale)

The corresponding URL is:


  • Export report and report element as plain text
  • Change source: support of new data sources and document parameters do not need to be answered
  • Updated format of JSON arrays: in generated JSON, an array [] is always used even if it has no item or only one

Refer to the SAP BusinessObjects RESTful Web Service SDK User Guide for Web Intelligence and the BI Semantic Layer for more details on other parameters added to the Web Intelligence REST Web Services.

Web Intelligence Custom Elements

Web Intelligence custom elements have been introduced in SAP BI 4.2 to delegate data rendering to an external service. This external service must implement a REST Web Service that defines the custom element service. Such custom element can be used to implement custom visualization but also custom processing.

In SAP BI 4.2 SP3, a new API has been introduced so you can define your own settings for your custom elements.

The "[GET] http://<server>/api/visualizations/<vizType>/settings" call returns this list of custom settings.

The possible settings types are the same ones supported by Web Intelligence: Boolean, string, integer, float, color, font and list.

The user can set the custom elements settings in the Format Custom Element dialog box, where the custom elements’ custom settings are displayed as defined by the /settings call.

Custom Element Settings

The "POST http://<server>/api/visualizations/<vizType>/render" call has new attributes:

  • settings: to pass the custom settings previously described
  • instance: to uniquely identify a custom element
  • palette: to allow the user to apply a custom palette and color assignment to a custom element
  • customProperties: to add additional property to a custom element

Web Intelligence Extensions

Web Intelligence extensions allow you to extend Web Intelligence user interface and write your own code for specific processing you can integrate in Web Intelligence. So far, only two extension types were supported:

  • Side panel, to add your own side panel in Web Intelligence
  • Status bar, to add some buttons in Web Intelligence status bar

In SAP BI 4.2 SP3, a new extension type has been added: Perspective. In addition to the Reading, Design and Data perspectives, you can now add your own perspective. The name of this perspective is added in the top toolbar beside the default perspectives name. Clicking on it opens a page; that runs the code you have embedded in your extension.

Web Intelligence Perspective Extension

New methods to create and deploy Web Intelligence extensions can be used. The ones previously available are still supported, but the new ones are recommended since much simpler:

  • It is no more needed to compile the extension in Java. A JSON file can be used to declare the extension, instead of the Extension.Java file.
  • The Web Intelligence extension can be provided as a web application (WAR file). This web application can be simply deployed on any application server and registered in the CMC by providing its URL.

Registering a Web Intelligence Extension in the CMC Through its URL

In Web Intelligence Java Script API that offers an interface to Web Intelligence when writing extensions, the WebiApplication.getContext method has been extended to return:

  • object.documentId: The document ID
  • object.documentCuid: The document CUID
  • object.currentUserId: The user ID
  • object.currentUserCuid: The user CUID

Semantic Layer Java SDK

The Semantic Layer Java SDK is intended to create, edit and manage UNX universes (information design tool) and their artifacts (connection, data foundation and business layer). New objects and methods have been added to its object model:

  • Create and edit linked universe.
    • Add, remove and include core universe(s) in a derived universe
    • Synchronize and refresh core universe(s) in a derived universe
    • Get and set derived BlItem derived status

In 4.2 SP2, it is only possible to read derived universe content, not modify it.

  • Manage data foundation and business layer query script parameters, both the predefined ones (AUTO_UPDATE_QUERY,…) and the ones you can create.
    • Get and set predefined query script parameters
    • Get predefined query script parameters default values
    • Create and edit new query script parameters. Get and set their value.

In order to avoid confusion with prompts/parameters, the class has been named QueryScriptProperty. It inherits from Property which is also the parent for CustomProperty (introduced in SAP BI 4.1 SP3), used to manage business layer or business object custom properties.

QueryScriptProperty Object Model

  • Create and edit business filters and query list of values. These two classes rely on a string which contains the filter expression or the query expression (setExpression, getExpression). This string is an XML whose syntax is similar to the one used in Semantic Layer RESTful Web Service.

BusinessQueryLov and BusinessFilter Object Model

  • Get and set business layer comment
  • Get universe revision number
  • Get object path (in the CMS repository) from its CUID or get object CUID from its path