microsoft / Analysis-Services

Git repo for Analysis Services samples and community projects
MIT License
602 stars 415 forks source link

Feature request: push Report Level Measures from a Power BI report into a tabular model #113

Closed EylesIT closed 3 years ago

EylesIT commented 3 years ago

Apologies if this should be a section other than Issues.

I have a Power BI Desktop (for RS) report with over 100 DAX measures defined in the Power BI report itself (not in the tabular model). The Power BI report data source is an SSAS Analysis Services tabular model database. Now that I have tested the measures are working correctly, I want to push the Report Level measures into the tabular model (either the SSAS database or the Visual Studio tabular model project). But there does not seem to be a way to do this. I have to manually copy and paste the measure name, expression, and definitions over, one by one - very tedious and prone to errors.

There is software called Power BI Helper which opens a Power BI report and can identify and display the Report Level Measures, but it unfortunately does not export this data.

The ability for ALM Toolkit to push Report Level Measures from a Power BI report into a tabular model would save a lot of time.

m-kovalsky commented 3 years ago

Nice idea - you can see how to do this here: https://www.elegantbi.com/post/reportlevelmeasures

marcosqlbi commented 3 years ago

@m-kovalsky awesome!

daryl-lynch-bzy commented 3 years ago

@m-kovalsky - would this concept work for Composite model and their measures or does that bring other challenges?

m-kovalsky commented 3 years ago

@daryl-lynch-bzy I just tested this and measures created when using the 'Direct Query over Power BI Datasets' feature actually go directly into the model file behind the new dataset. In other words, if you open the 'composite' model in Tabular Editor, you will see these measures (plus the original measures). Note that the original measures will have a DAX expression of 'EXTERNALMEASURE(...)' so that enables a quick way to search for the report level measures within the .bim file.

foreach (var m in Model.AllMeasures.Where(a => ! a.Expression.StartsWith("EXTERNALMEASURE")).ToList())
{
    m.Output();
}