New to Kendo UI for jQuery? Download free 30-day trial

OLAP Cube Setup

You can set up the OLAP cube by using Microsoft SQL Server Analysis Services SSAS.

Installing SSAS

For more information on installing the SQL Server Analysis Services, refer to the MSDN tutorial.

Defining the OLAP Cube

For more information on creating, defining, and deploying the OLAP multidimensional cube, refer to the MSDN multidimensional modelling tutorial.

Configuring the HTTP Access

To enable the HTTP access to the SQL Server Analysis Services, use an MSMDPUMP.ddl ISAPI extension.

  • For more information on setting up the MSMDPUMP.ddl extension, refer to the MSDN HTTP access tutorial.
  • For an online accessible OLAP service for testing purposes, use https://demos.telerik.com/olap/msmdpump.dll. The URL does not open directly in the browser.

Enabling the Cross-Domain Access

If the cube will not be requested from different domains, skip this step.

To allow cross-domain requests to the OLAP service, enable the CORS behavior of your server. For more information on Cross-Origin Resource Sharing (CORS), refer to this link.

The following sections demonstrate how to enable CORS on an Internet Information Services (IIS) server. Cross-domain access requires you to configure the HTTP Response Headers and the OPTIONS method server response.

Configuring HTTP Response Headers

To configure HTTP Response Headers, specify the following requirements:

  • The domains that will perform the data requests.
  • An HTTP method through which the data will be transferred.
  • The HTTP headers that can be used in the requests.
  • The user credentials that will be required if an authenticated access is used.

The following example demonstrates the list of the HTTP Response Headers that show the settings which are required to enable the IIS CORS behavior.

Header Name

Value

Details

Access-Control-Allow-Headers Origin, Content-Type, Accept

These are the names of the fields required to be used in the actual request. Values should be comma-separated.

  • Origin – this field indicates where the cross-origin or preflight request originates from. This setting tells the server that the origin, which performs the request is a known one.
  • Content-Type – this field indicates the content (MIME) type of the entity body sent to the recipient. The actual content type used in the communication between OLAP service and Kendo UI PivotDataSource is text/xml.
  • Accept – this field specifies the media types which are acceptable for the response.
Access-Control-Allow-Origin

The URI names that may access the resource. When an asterisk (*) is defined, all domains are allowed.

The names of the allowed domains should be separated by comma (,).

Access-Control-Request-Method POST

The name of the HTTP method to be used in the actual request.

The XMLA protocol specifies an HTTP POST method.

Access-Control-Allow-Credentials (authenticated access only) true

The allowed values are:

  • true – allows suppliying of credentials with the request.
  • false – disable supplying of credentials with the request. Equal to an altogether missing header.

Configuring the OPTIONS Method Server Response

To configure the OPTIONS method server response, specify the server response to the OPTIONS method requests. In IIS, configure the behavior of the OPTIONS method through the OPTIONSVerbHandler mapping settings.

The following example demonstrates the list of settings that you have to apply.

HTTP Handler Name Required Access Level Details
OPTIONSVerbHandler Read

Specifies that the handler requires READ access to the requests.

Accessing the Cube Securely

To implement a secured access to the OLAP instance, use either of the following approaches:

  • Use a proxy service which communicates with the cube on a secured protocol. This proxy has to support the XMLA protocol. In the Microsoft world, the solution is to use ADOMD.NET. For more information, refer to this forum thread.
  • Send the credentials with a request header even though the Username and Password will be visible on the client side (browser). For more information on passing credentials with request headers, refer to this StackOverflow discussion. You can define the required callbacks and settings directly in the transport.read object because they will be passed to the $.ajax method.

See Also

In this article