DevExtreme Angular - XmlaStore API

The XmlaStore is a store that provides an interface for accessing an OLAP cube according to the XMLA standard.

import XmlaStore from "devextreme-angular/ui/xmla-store"
Type: DxXmlaStoreTypes.default

The XmlaStore is used in the PivotGridDataSource which, in turn, is used in the PivotGrid widget.

jQuery
JavaScript
var store = new DevExpress.data.XmlaStore({
    url: "http://my-web-srv01/OLAP/msmdpump.dll",
    catalog: "AdventureWorksDW2012",
    cube: "Adventure Works"
});

// ===== or inside the PivotGridDataSource =====
var pivotGridDataSource = new DevExpress.data.PivotGridDataSource({
    store: {
        type: "xmla",
        url: "http://my-web-srv01/OLAP/msmdpump.dll",
        catalog: "AdventureWorksDW2012",
        cube: "Adventure Works"
    },
    // Other PivotGridDataSource options go here
});
Angular
TypeScript
import XmlaStore from "devextreme/ui/pivot_grid/xmla_store";
import PivotGridDataSource from "devextreme/ui/pivot_grid/data_source";
// ...
export class AppComponent {
    store: XmlaStore;
    pivotGridDataSource: PivotGridDataSource;
    constructor () {
        this.store = new XmlaStore({
            url: "http://my-web-srv01/OLAP/msmdpump.dll",
            catalog: "AdventureWorksDW2012",
            cube: "Adventure Works"
        });

        // ===== or inside the PivotGridDataSource =====
        this.pivotGridDataSource = new PivotGridDataSource({
            store: {
                type: "xmla",
                url: "http://my-web-srv01/OLAP/msmdpump.dll",
                catalog: "AdventureWorksDW2012",
                cube: "Adventure Works"
            },
            // Other PivotGridDataSource options go here
        });
    }
}
AngularJS
JavaScript
angular.module('DemoApp', ['dx'])
    .controller('DemoController', function DemoController($scope) {
        $scope.store = new DevExpress.data.XmlaStore({
            url: "http://my-web-srv01/OLAP/msmdpump.dll",
            catalog: "AdventureWorksDW2012",
            cube: "Adventure Works"
        });

        // ===== or inside the PivotGridDataSource =====
        $scope.pivotGridDataSource = new DevExpress.data.PivotGridDataSource({
            store: {
                type: "xmla",
                url: "http://my-web-srv01/OLAP/msmdpump.dll",
                catalog: "AdventureWorksDW2012",
                cube: "Adventure Works"
            },
            // Other PivotGridDataSource options go here
        });
    });
Knockout
JavaScript
var viewModel = {
    store: new DevExpress.data.XmlaStore({
        url: "http://my-web-srv01/OLAP/msmdpump.dll",
        catalog: "AdventureWorksDW2012",
        cube: "Adventure Works"
    })

    // ===== or inside the PivotGridDataSource =====
    pivotGridDataSource: new DevExpress.data.PivotGridDataSource({
        store: {
            type: "xmla",
            url: "http://my-web-srv01/OLAP/msmdpump.dll",
            catalog: "AdventureWorksDW2012",
            cube: "Adventure Works"
        },
        // Other PivotGridDataSource options go here
    })
};

ko.applyBindings(viewModel);
Vue
App.vue
<script>
import XmlaStore from 'devextreme/ui/pivot_grid/xmla_store';
import PivotGridDataSource from 'devextreme/ui/pivot_grid/data_source';

const store = new XmlaStore({
    url: 'http://my-web-srv01/OLAP/msmdpump.dll',
    catalog: 'AdventureWorksDW2012',
    cube: 'Adventure Works'
});

// ===== or inside the PivotGridDataSource =====
const pivotGridDataSource = new PivotGridDataSource({
    store: {
        type: 'xmla',
        url: 'http://my-web-srv01/OLAP/msmdpump.dll',
        catalog: 'AdventureWorksDW2012',
        cube: 'Adventure Works'
    },
    // Other PivotGridDataSource options go here
});

export default {
    // ...
    data() {
        return {
            pivotGridDataSource
        }
    }
}
</script>
React
App.js
// ...
import XmlaStore from 'devextreme/ui/pivot_grid/xmla_store';
import PivotGridDataSource from 'devextreme/ui/pivot_grid/data_source';

const store = new XmlaStore({
    url: 'http://my-web-srv01/OLAP/msmdpump.dll',
    catalog: 'AdventureWorksDW2012',
    cube: 'Adventure Works'
});

// ===== or inside the PivotGridDataSource =====
const pivotGridDataSource = new PivotGridDataSource({
    store: {
        type: 'xmla',
        url: 'http://my-web-srv01/OLAP/msmdpump.dll',
        catalog: 'AdventureWorksDW2012',
        cube: 'Adventure Works'
    },
    // Other PivotGridDataSource options go here
});

class App extends React.Component {
    // ...
}
export default App;
ASP.NET MVC Controls
Razor C#
Razor VB
@(Html.DevExtreme().PivotGrid()
    .DataSource(ds => ds
        .Store(s => s.Xmla()
            .Url("http://my-web-srv01/OLAP/msmdpump.dll")
            .Catalog("AdventureWorksDW2012")
            .Cube("Adventure Works")
        )
    )
)
@(Html.DevExtreme().PivotGrid() _
    .DataSource(Function(ds)
        Return ds.Store(Function(s)
                Return s.Xmla() _
                        .Url("http://my-web-srv01/OLAP/msmdpump.dll") _
                        .Catalog("AdventureWorksDW2012") _
                        .Cube("Adventure Works")
                End Function)
    End Function)
)

The XmlaStore currently supports only the Microsoft Analysis Services OLAP tool. Refer to the Multidimensional Modeling tutorial for more information on it. To learn how to configure HTTP access to Analysis Services on IIS, see this article.

NOTE
The XmlaStore is immutable. You cannot change its configuration at runtime. However, you can use its methods to manipulate it.
See Also

Configuration

This section describes options that configure the XmlaStore.

Name Description
beforeSend

Specifies a function that customizes the request before it is sent to the server.

catalog

Specifies the database (or initial catalog) that contains the OLAP cube to use.

cube

Specifies the name of the OLAP cube to use from the catalog.

url

Specifies the OLAP server's URL.