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

Earn a 50% discount on the DP-600 certification exam by completing the Fabric 30 Days to Learn It challenge.

Reply
Clampazzo
Helper II
Helper II

Create DirectQuery Datasest with XMLA Endpoint doesn't automatically select gateway

I am currently building a directquery dataset via code and xmla endpoint.  I have been able to create the dataset in my workspace however when I navigate to the online dataset it doesn't have the gateway connections automatically set.  I have to then takeover the dataset, navigate to gateways and then it will auto fill out the correct gateway.  

Is there a way I can do this in code?  Below is what I'm seeing and then the code I am using.

 

When first created there are no tables:

Clampazzo_0-1695385260237.png

Then after I navigate to settings, click on take over settings, and open gateway and cloud connections it automatically finds the correct connection and loads it. 

I navigate back and the tables are already filled in.  The only thing I did was takeover and navigate to the connection.  

 

Is there a way I can do this via code so that this is automatically done?

 

  public static void CreateWingtipSalesModel(Database database) {

    Model model = database.Model;

 

          Table tableCustomers = CreateCustomersTable();
  
          model.Tables.Add(tableCustomers);
 

         model.SaveChanges();

    model.RequestRefresh(RefreshType.Full);
    model.SaveChanges();
  }
  
  
    private static Table CreateCustomersTable()
  {

      Table customersTable = new Table()
      {
          Name = "Case",
          Description = "Case table",
          Partitions = {
              new Partition() {
          Name = "All Cases",
          Mode = ModeType.DirectQuery,
          Source = new MPartitionSource() {
              Expression = Properties.Resources.CustomersQuery_m

          }
      }
  },
          Columns = {
      new DataColumn() { Name = "Case_ID", DataType = DataType.Int64, SourceColumn = "Case_ID", IsHidden=false },
      new DataColumn() { Name = "Category", DataType = DataType.String, SourceColumn = "Category" }

  }
      };



      return customersTable;
  }

 

 

The Customers Query M code is below:

let
    Source = Sql.Database("CONNECTION", "DATABASE", [MultiSubnetFailover=true]),
    FieldProc_vwCase = Source{[Schema="dbo",Item="table"]}[Data]
in
    dbo_table
1 REPLY 1
lbendlin
Super User
Super User

If this is important to you please consider voting for an existing idea or raising a new one at https://ideas.fabric.microsoft.com/?forum=2d80fd4a-16cb-4189-896b-e0dac5e08b41

 

Also this: Datasets - Take Over In Group - REST API (Power BI Power BI REST APIs) | Microsoft Learn

Helpful resources

Announcements
RTI Forums Carousel3

New forum boards available in Real-Time Intelligence.

Ask questions in Eventhouse and KQL, Eventstream, and Reflex.

MayPowerBICarousel

Power BI Monthly Update - May 2024

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