Skip to content

XMLA provider for a .NET Core OLAP client. An alternative of ADOMD.NET.

License

Notifications You must be signed in to change notification settings

RadarSoft/xmla-client

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

XMLA provider for a .NET Core OLAP client

Provides data access to any OLAP servers that support XMLA protocol and can be accessed over an HTTP connection. It is designed for development of an OLAP client in .NET Core applications that are completely independent of .NET Framework and therefore cannot use ADOMD.NET.

Connection

var connection = new XmlaConnection("Data Source=http://localhost/OLAP/msmdpump.dll;Initial Catalog=AdventureWorksDW2012Multidimensional-SE");

Open Connection

connection.Open();
var sessionId = connection.SessionID;

Close Connection

connection.Close();

Open Connection with SessionId

var connection = new XmlaConnection("Data Source=http://localhost/OLAP/msmdpump.dll;Initial Catalog=AdventureWorksDW2012Multidimensional-SE");
    
connection.SessionID = sessionId;
connection.Open();

Close Connection with SessionId

var connection = new XmlaConnection("Data Source=http://localhost/OLAP/msmdpump.dll;Initial Catalog=AdventureWorksDW2012Multidimensional-SE");
    
connection.SessionID = sessionId;
connection.Close();

Descover

connection.Open();
var command = new XmlaCommand("MDSCHEMA_CUBES", connection);
SoapEnvelope result = command.Execute() as SoapEnvelope;
connection.Close();

Cube Metadata

connection.Open();
CubeDef cube = connection.Cubes.Find("Adventure Works");

KpiCollection kpis = cube.Kpis;
Property prop = kpis[0].Properties.Find("KPI_PARENT_KPI_NAME");

NamedSetCollection nsets = cube.NamedSets;

MeasureGroupCollection mgroups = cube.MeasureGroups;

MeasureCollection meas = cube.Measures;
prop = meas[0].Properties.Find("DEFAULT_FORMAT_STRING");

DimensionCollection dims = cube.Dimensions;
prop = dims[0].Properties.Find("DIMENSION_CARDINALITY");

HierarchyCollection hiers = dims[0].Hierarchies;
Hierarchy hier = cube.Dimensions.FindHierarchy("[Customer].[Customer Geography]");
prop = hier.Properties.Find("HIERARCHY_CARDINALITY");

LevelCollection levels = hiers[0].Levels;
prop = levels[0].Properties.Find("LEVEL_NUMBER");

MemberCollection members = levels[1].GetMembers();
MemberProperty prop = members[0].MemberProperties.Find("PARENT_UNIQUE_NAME");

ActionCollection acts = connection.GetActions("Adventure Works", "([Measures].[Internet Sales-Unit Price])", CoordinateType.Cell);

connection.Close();

Execute CellSet

connection.Open();
var mdx = "SELECT FROM [Adventure Works] WHERE [Measures].[Internet Sales Count]";
var command = new XmlaCommand(mdx, connection);
CellSet cellset = command.ExecuteCellSet();
connection.Close();

Approved OLAP servers

  • Microsoft Analysis Services (MD semantic model)
  • Mondrian

Requirements

  • .NET Core 2.2

About

XMLA provider for a .NET Core OLAP client. An alternative of ADOMD.NET.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages