Forum Discussion
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
- Anonymous4 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 SourceIf 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
- ImkeFCommunity 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. - elaine1217Helper I
Hi ImkeF
This is what the finished url would look like. I've tried it with my site name and list name and it works in this format:
https://sharepoint.com/sites/MySite/_api/web/Lists/getbytitle('My list name')/items(20)/versions
- ImkeFCommunity 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.
- AnonymousNot 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 SourceIf 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.- elaine1217Helper I
Thanks! That worked for me
- v-kkf-msftCommunity 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