The DAX module lets eMondrian answer DAX queries — the language Power BI uses over a live connection. This page explains how it works, what to expect and how to report problems.
How it works
Power BI visual
│ DAX query over XMLA
▼
eMondrian DAX module
│ maps tables, columns and measures to the cube model
▼
eMondrian engine
│ SQL (results cached per client session)
▼
your database
In DAX terms, a cube appears as a set of tables: dimensions become tables with columns for their attributes, and measures belong to a table as well. A measure from the HR cube in FoodMart is written 'HR'[Org Salary].
Measures are evaluated by the same engine that answers MDX, so a measure defined once in the schema gives the same result in Excel (MDX) and Power BI (DAX).
The DAX module also serves the model metadata Power BI reads to build its field list. That’s why Power BI needs a valid key even before running any query.
Coverage
Power BI generates a wide range of DAX. The DAX module targets the queries produced by common visuals — tables, matrices, charts, cards, slicers, filters and hierarchy drill-down. Some expressions are not supported yet.
Compatibility matrix
A detailed list of supported DAX functions and patterns, based on real Power BI queries, is in preparation.
Test your own reports during the evaluation: connect them to eMondrian and check that every visual loads and the numbers match.
Writing DAX by hand
When you write DAX yourself — in DAX Studio, through the MCP execute_query tool, or in tests:
- Qualify measures with their table:
'HR'[Org Salary], not[Org Salary]. Unqualified measure references are a known open issue. - Name the cube when a catalog has more than one (FoodMart has six). Through MCP, pass the
cubeargument; a catalog with one cube (OnTime) needs none.
EVALUATE ROW("Org_Salary", 'HR'[Org Salary])Known issues
| Issue | Workaround |
|---|---|
Unqualified measure references ([Org Salary]) fail or loop | Write 'Table'[Measure] |
| Catalog with several cubes needs the cube to be specified (MCP / hand-written DAX) | Pass cube, or put each cube used by Power BI in its own catalog |
| Some complex DAX patterns unsupported | Report the query (see below) |
Report a failing query
- In Power BI Desktop: Performance analyzer → Copy query for the failing visual.
- Copy the error message, and if possible the relevant lines of
mondrian.log. - Open an issue with the query, the error and the eMondrian version.
Failing real-world queries are how coverage improves.
Licensing
The DAX module ships with Community and needs a key with the DAX module — the 30-day evaluation key includes it. See Editions & modules.