Forum Discussion

Peter_MTG's avatar
Peter_MTG
Frequent Visitor
3 years ago
Solved

Powershell : Tabular Object Model, model object is null

I sometimes use PowerShell to quickly alter a set of similar measures in a Power BI dataset. This could be done with this code :

 

[System.Reflection.Assembly]::LoadWithPartialName("Microsoft.AnalysisServices.Tabular")

$serverName = "localhost:xxxxx";
$databaseName = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx";
$svr = New-Object Microsoft.AnalysisServices.Tabular.Server
$svr.Connect($serverName)
$db = $svr.databases.GetByName($databaseName)

 

$findstring="find string"
$replacestring="replace string"

foreach($table in $db.Model.Tables) {
  foreach($measureobj in $table.measures) {
  $measureobj.expression=$measureobj.Expression.replace($findstring,$replacestring)
}
}

#$db.Model.SaveChanges()

 

Works great, until recently I found some reports where the Model-attribute of the database seems to be empty.

 

 

 Although it works perfectly fine in PowerBI, I can't find the model anymore in PowerShell. Also Tabular and DAX Studio are working fine with the reports dataset.

  • I saw that in the report one of the datasources was still using the Power BI dataflows (Legacy) connector. As soon as I switched this one to the Power BI dataflows connector, the model attribute was correctly filled in.

     

    I'm not 100 % using this connector always causes this problem, but at least in this case, replacing it solved the issue.

1 Reply

  • Peter_MTG's avatar
    Peter_MTG
    Frequent Visitor

    I saw that in the report one of the datasources was still using the Power BI dataflows (Legacy) connector. As soon as I switched this one to the Power BI dataflows connector, the model attribute was correctly filled in.

     

    I'm not 100 % using this connector always causes this problem, but at least in this case, replacing it solved the issue.