Forum Discussion

aroyappan's avatar
aroyappan
Frequent Visitor
9 years ago
Solved

Dynamically change data source of published report

We develop reports used by multiple clients. Each clients maintains a database with same schema. We have a database that holds information regarding the list of database for the clients. I want to pa...
  • Anonymous's avatar
    Anonymous
    9 years ago

    Hi aroyappan,

     

    As GilbertQ said, if you want to dynamic change the datasource, you can refer to below steps:

     

    1. Create a table with these datasources.(id, server name, database name , item)

    2. Write a power query custom funciton which used to analysis the records and connect to datasource.(function parameters: server name, user name, password)

    3. Filter the datasource table and use the filtered records to inveke the custom funciton.

     

    Sample of sql database

     

    let
        loadData=(Servername as text, DbName as text, itemName as text)=>
        let
            Source = Sql.Databases(Servername){[Name=DbName]}[Data]{[Schema="dbo",Item=itemName]}[Data]
        in
            Source
    in
        loadData

     

    Use:

    Table structure: id, server name, db name, item name

     

    let
    Selected = Table.SelectRows(SourceTable, each [id] = 10),
    ServerName= List.First(Selected[server name]),
    DBName= List.First(Selected[db name]),
    ItemName=List.First(Selected[item name]),
    Source= loadData(ServerName,DBName,ItemName)
    in
    Source

     

     

    Regards,

    Xiaoxin Sheng