Forum Discussion

elaine1217's avatar
elaine1217
Helper I
4 years ago
Solved

Scheduled Refresh - Dynamic Data Source Microsoft Lists

I am using a query that imports all the versions of each item in a Microsoft List. When I publish the dashbaord to PowerBI it doesn't allow me to set up scheduled refreshes. Based on similar questions, I think this has to do with the Web.Contents statement, but I've updated to use relative path and it still is giving me issues. I also couldn't figure out the query parameter to past the item number and list name to the web.contents statement. Query is below. Thanks!

 

let
Source = (VersionsRelevantSharePointListName as text, VersionsRelevantSharePointLocation as text, VersionsRelevantItemID as number) => let
Source = Xml.Tables(Web.Contents(VersionsRelevantSharePointLocation, [RelativePath= Text.Combine({"/_api/web/Lists/getbytitle('", VersionsRelevantSharePointListName ,
"')/items(", Text.From(VersionsRelevantItemID), ")/versions"})])
),
entry = Source{0}[entry],
#"Removed Other Columns2" = Table.SelectColumns(entry,{"content"}),
#"Expanded content" = Table.ExpandTableColumn(#"Removed Other Columns2", "content", {"http://schemas.microsoft.com/ado/2007/08/dataservices/metadata"}, {"content"}),
#"Expanded content1" = Table.ExpandTableColumn(#"Expanded content", "content", {"properties"}, {"properties"}),
#"Expanded properties" = Table.ExpandTableColumn(#"Expanded content1", "properties", {"http://schemas.microsoft.com/ado/2007/08/dataservices"}, {"properties"})
in
#"Expanded properties"
in
Source

  • Anonymous's avatar
    Anonymous
    4 years ago

    Hi elaine1217 ,

     

    You need to fix the SharePoint site link and then you will be able to refresh it successfully.

     

    let
    Source = ( VersionsRelevantSharePointListName as text, VersionsRelevantItemID as number) => let
    Source = Xml.Tables(Web.Contents("https://xxxxx.sharepoint.com/sites/winniz-test", [RelativePath= Text.Combine({"/_api/web/Lists/getbytitle('", VersionsRelevantSharePointListName ,
    "')/items(", Text.From(VersionsRelevantItemID), ")/versions"})])
    ),
    entry = Source{0}[entry],
    #"Removed Other Columns2" = Table.SelectColumns(entry,{"content"}),
    #"Expanded content" = Table.ExpandTableColumn(#"Removed Other Columns2", "content", {"http://schemas.microsoft.com/ado/2007/08/dataservices/metadata"}, {"content"}),
    #"Expanded content1" = Table.ExpandTableColumn(#"Expanded content", "content", {"properties"}, {"properties"}),
    #"Expanded properties" = Table.ExpandTableColumn(#"Expanded content1", "properties", {"http://schemas.microsoft.com/ado/2007/08/dataservices"}, {"properties"})
    in
    #"Expanded properties"
    in
    Source

     

    If the problem is still not resolved, please provide detailed error information or the expected result you expect. Let me know immediately, looking forward to your reply.
    Best Regards,
    Winniz
    If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.

6 Replies

  • ImkeF's avatar
    ImkeF
    Community Champion

    Hello elaine1217 ,
    not completely sure what statement your API actually expects.
    Are you able to provide a sample URL that works for your use case? I could then show you how to parametrize correctly. This is really important, as the small details like quotes and brackets can make all the difference here.

  • ImkeF's avatar
    ImkeF
    Community Champion

    Hi elaine1217 ,
    you can either use a tool like Fiddler to record the queries that have been sent by these 2 approaches and compare the URLs or debug your current query like so:
    Check the string in step "RelativePathURL"

    let
      VersionsRelevantSharePointListName = "xxxx", 
      VersionsRelevantSharePointLocation = "yyyyy", 
      VersionsRelevantItemID = "zzz", 
      RelativePathURL = Text.Combine(
        {
          "/_api/web/Lists/getbytitle('", 
          VersionsRelevantSharePointListName, 
          "')/items(", 
          Text.From(VersionsRelevantItemID), 
          ")/versions"
        }
      ), 
      Source = Xml.Tables(
        Web.Contents(VersionsRelevantSharePointLocation, [RelativePath = RelativePathURL])
      ), 
      entry = Source{0}[entry], 
      #"Removed Other Columns2" = Table.SelectColumns(entry, {"content"}), 
      #"Expanded content" = Table.ExpandTableColumn(
        #"Removed Other Columns2", 
        "content", 
        {"http://schemas.microsoft.com/ado/2007/08/dataservices/metadata"}, 
        {"content"}
      ), 
      #"Expanded content1" = Table.ExpandTableColumn(
        #"Expanded content", 
        "content", 
        {"properties"}, 
        {"properties"}
      ), 
      #"Expanded properties" = Table.ExpandTableColumn(
        #"Expanded content1", 
        "properties", 
        {"http://schemas.microsoft.com/ado/2007/08/dataservices"}, 
        {"properties"}
      )
    in
      #"Expanded properties"

    Otherwise, posting your error-message here might help as well.

  • Anonymous's avatar
    Anonymous
    Not applicable

    Hi elaine1217 ,

     

    You need to fix the SharePoint site link and then you will be able to refresh it successfully.

     

    let
    Source = ( VersionsRelevantSharePointListName as text, VersionsRelevantItemID as number) => let
    Source = Xml.Tables(Web.Contents("https://xxxxx.sharepoint.com/sites/winniz-test", [RelativePath= Text.Combine({"/_api/web/Lists/getbytitle('", VersionsRelevantSharePointListName ,
    "')/items(", Text.From(VersionsRelevantItemID), ")/versions"})])
    ),
    entry = Source{0}[entry],
    #"Removed Other Columns2" = Table.SelectColumns(entry,{"content"}),
    #"Expanded content" = Table.ExpandTableColumn(#"Removed Other Columns2", "content", {"http://schemas.microsoft.com/ado/2007/08/dataservices/metadata"}, {"content"}),
    #"Expanded content1" = Table.ExpandTableColumn(#"Expanded content", "content", {"properties"}, {"properties"}),
    #"Expanded properties" = Table.ExpandTableColumn(#"Expanded content1", "properties", {"http://schemas.microsoft.com/ado/2007/08/dataservices"}, {"properties"})
    in
    #"Expanded properties"
    in
    Source

     

    If the problem is still not resolved, please provide detailed error information or the expected result you expect. Let me know immediately, looking forward to your reply.
    Best Regards,
    Winniz
    If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.

  • v-kkf-msft's avatar
    v-kkf-msft
    Community Support

    Hi elaine1217 ,

     

    Has your problem been solved? If it is solved, please mark a reply which is helpful to you.

     

    If the problem is still not resolved, please provide detailed error information or the expected result you expect. Let me know immediately, looking forward to your reply.


    Best Regards,
    Winniz