Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

Register now to learn Fabric in free live sessions led by the best Microsoft experts. From Apr 16 to May 9, in English and Spanish.

Reply
Don-Bot
Helper II
Helper II

Using XMLA endpoint to copy a dataset but source model is null

I am currently working on utilizing XMLA Endpoint with C# to copy a datamodel that exists in my workspace.

The steps I am following are:

  1. Create the new datamodel with a dummy model
  2. copy the current model over to the new datamodel.
  • This is where I have issues. When I connect to my existing datamodel in Visual Studios the value for model is 'null'.

Can someone direct me to how I can resolve this? Or do I need to recreate the entire model in code other than copy it?

My goal is to have a template datamodel that I will copy to different workspaces and then modify them from there.

I have been working with the below code:

 

 

const string connectString = "powerbi://api.powerbi.com/v1.0/myorg/MYDATAMODEL";
 

static void Main(string[] args) {

    Server server = new Server();
    server.Connect(connectString);
    Model model = server.Databases[0].Model;

 

    string sourceDatabaseName = "DATABASE";
    string DatabaseName = "DATABASE - Copy";

    Database sourceDatabase = server.Databases.GetByName(sourceDatabaseName);

        string newDatabaseName = server.Databases.GetNewName(DatabaseName);
        Database targetDatabase = CreateDatabase(newDatabaseName);
        sourceDatabase.Model.CopyTo(targetDatabase.Model);
        targetDatabase.Model.SaveChanges();

        targetDatabase.Model.RequestRefresh(RefreshType.Full);
        targetDatabase.Model.SaveChanges();

     
     Database CreateDatabase(string DatabaseName)
    {

        string newDatabaseName = server.Databases.GetNewName(DatabaseName);

        var database = new Database()
        {
            Name = newDatabaseName,
            ID = newDatabaseName,
            CompatibilityLevel = 1520,  
            StorageEngineUsed = Microsoft.AnalysisServices.StorageEngineUsed.TabularMetadata,
            Model = new Model()
            {
                Name = DatabaseName + "-Model",
                Description = "A Demo Tabular data model with 1520 compatibility level."
            }
        };

        server.Databases.Add(database);
        database.Update(Microsoft.AnalysisServices.UpdateOptions.ExpandFull);

        return database;
    }

}

 

 

 

nullvalue.png

0 REPLIES 0

Helpful resources

Announcements
Microsoft Fabric Learn Together

Microsoft Fabric Learn Together

Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City

PBI_APRIL_CAROUSEL1

Power BI Monthly Update - April 2024

Check out the April 2024 Power BI update to learn about new features.

April Fabric Community Update

Fabric Community Update - April 2024

Find out what's new and trending in the Fabric Community.