Forum Discussion

bimorten's avatar
bimorten
Frequent Visitor
8 years ago
Solved

Dynamically change data source / relative source paths

Hello

 

Is it possible to dynamically change the source data reference in queries, when updating a data source? Or even better, use relative paths? We are multiple people working on the same data structure, but with different data sources. When we update our PowerBI .pbix file and send it out to everyone that uses it, and they change the data source they work against, everything brakes, and they manually have to edit the sources using the advanced editor.

 

Example query

Query;

let
    Source = AzureStorage.Blobs("https://example.blob.core.windows.net/development"),
    #"https://example blob core windows net/development_data1/data1 json" = Source{[#"Folder Path"="https://example.blob.core.windows.net/development",Name="data1/data1.json"]}[Content],
    #"Imported JSON" = Json.Document(#"https://example blob core windows net/development_data1/data1 json",1252),
    #"Converted to Table" = Table.FromList(#"Imported JSON", Splitter.SplitByNothing(), null, null, ExtraValues.Error),
in
    #"Converted to Table"

 

We do have the standard source query, so maybe it's possible to dynamically refer to that one? If yes, how do we do it?

 

 

Any answers would be much appreciated :) 

  • bimorten's avatar
    bimorten
    8 years ago

    Thanks, you put me in the right direction :) 

     

    The solution was pretty straight forward.

     

    Instead of hardcoded values, like this;

     

    = AzureStorage.Blobs("https://exampleblobstorage.blob.core.windows.net/"container")

    You can refer to the parameters using "&Text.From(ParameterName)&"

     

    = AzureStorage.Blobs("https://"&Text.From(StorageAccountName)&".blob.core.windows.net/"&Text.From(ContainerName)&"")

2 Replies

  • Greg_Deckler's avatar
    Greg_Deckler
    Community Champion

    In theory, yes, you could use query parameters or something along those lines. But not enough information to really go on.

    • bimorten's avatar
      bimorten
      Frequent Visitor

      Thanks, you put me in the right direction :) 

       

      The solution was pretty straight forward.

       

      Instead of hardcoded values, like this;

       

      = AzureStorage.Blobs("https://exampleblobstorage.blob.core.windows.net/"container")

      You can refer to the parameters using "&Text.From(ParameterName)&"

       

      = AzureStorage.Blobs("https://"&Text.From(StorageAccountName)&".blob.core.windows.net/"&Text.From(ContainerName)&"")