Reply
Frequent Visitor
Posts: 8
Registered: ‎03-14-2017

The Web.Page function didn't finish within timeout of 100 seconds.

Hi guys,

 

I was so proud to implement a report that's been taking me a lot of time. During the production i've always been able to auto refresh the report.

However now I'm getting the message error "The Web.Page function didn't finish within timeout of 100 seconds."

 

I read many threads and one seemed promising about adding the [Timeout=#duration(0,0,30,0)] in all the queries with Web content.

 

But it's not working.

 

All my web queries are added into a blank query and i'm afraid it's the one causing the issue:

 

= Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i44FAA==", BinaryEncoding.Base64), Compression.Deflate)),let _t = ((type text) meta [Serialized.Text = true]) in type table [#"Colonne 1" = _t])

 

I don't know how to solve this... if anyone can help!

 

Thanks a lot

Super Contributor
Posts: 965
Registered: ‎09-06-2015

Re: The Web.Page function didn't finish within timeout of 100 seconds.

Your code doesn't refer to a previous step or anything. It just transforms the code "i44FAA==" to an empty table.Everytime you run it you can just get an empty table.

 

So the error-message you're retrieving doesn't have anything to do with this code.

 

If you share all of your query code, we can investigate further.

Frequent Visitor
Posts: 8
Registered: ‎03-14-2017

Re: The Web.Page function didn't finish within timeout of 100 seconds.

Hi Imke,

 

Thanks for your feedback. To explain further:

 

I have many queries and the sources are coming from web (RSS feeds from housing websites / 1 query per city):

- I have a first set of 9 queries. Let's call them WebsiteA-1 to WebsiteA-9. The 9 queries are appended to a blank table called WebsiteA

- I have another set of 9 queries. Let's call them WebsiteB-1 to WebsiteB-9. The 9 queries are also appended to a blank table called WebsiteB

- WebsiteA and WebsiteB are appended to a blank table called AllWebsites

 

During the refresh from Power BI for Desktop, I usually notice that the query AllWebsites takes some time to update.

During the refresh from app.powerbi.com, I get the error message shared previously:  The Web.Page function didn't finish within timeout of 100 seconds.

 

I added [Timeout=#duration(0,0,30,0)] to the queries WebsiteA-1 to 9 and WebsiteB-1 to 9 like the following:

= Xml.Tables(Web.Contents("http://www.....",[Timeout=#duration(0,0,30,0)]))

 

However it didn't work.

 

Maybe do I need to add [Timeout=#duration(0,0,30,0)] to the query AllWebsites (which code I shared in the first post) but I don't know where to add it in the code.

 

I hope I provided enough info, but if needed I'll share the code for all my queries.

 

Thanks in advance for your help.

Super Contributor
Posts: 965
Registered: ‎09-06-2015

Re: The Web.Page function didn't finish within timeout of 100 seconds.

Yes, please share your code. thx.

Frequent Visitor
Posts: 8
Registered: ‎03-14-2017

Re: The Web.Page function didn't finish within timeout of 100 seconds.

Hi,

 

Here we go:

 

WebsiteA-1 to WebsiteA-9 are like this:

 

let
    Source = Xml.Tables(Web.Contents("http://www.seloger.com/rss,recherche.xml?&idtt=2&cp=92300",[Timeout=#duration(0,0,30,0)])),
    #"Expanded {0}" = Table.ExpandTableColumn(Source, "channel", {"http://www.w3.org/2005/Atom", "title", "link", "description", "language", "lastBuildDate", "docs", "webMaster", "copyright", "ttl", "image", "item"}, {"http://www.w3.org/2005/Atom", "title", "link", "description", "language", "lastBuildDate", "docs", "webMaster", "copyright", "ttl", "image", "item"}),
    #"Expanded {0}1" = Table.ExpandTableColumn(#"Expanded {0}", "item", {"title", "link", "guid", "description", "pubDate", "author"}, {"title.1", "link.1", "guid", "description.1", "pubDate", "author"}),
    #"Split Column by Delimiter" = Table.SplitColumn(#"Expanded {0}1","title",Splitter.SplitTextByEachDelimiter({"-"}, QuoteStyle.Csv, true),{"title.1.1", "title.2"}),
    #"Split Column by Delimiter1" = Table.SplitColumn(#"Split Column by Delimiter","title.1",Splitter.SplitTextByEachDelimiter({"-"}, QuoteStyle.Csv, true),{"title.1.1.1", "title.1.2"}),
    #"Split Column by Delimiter2" = Table.SplitColumn(#"Split Column by Delimiter1","description.1",Splitter.SplitTextByEachDelimiter({" m²"}, QuoteStyle.Csv, false),{"description.1.1", "description.1.2"}),
    #"Split Column by Delimiter3" = Table.SplitColumn(#"Split Column by Delimiter2","description.1.1",Splitter.SplitTextByEachDelimiter({" Surface: "}, QuoteStyle.Csv, true),{"description.1.1.1", "description.1.1.2"}),
    #"Replaced Value" = Table.ReplaceValue(#"Split Column by Delimiter3"," ","",Replacer.ReplaceText,{"description.1.1.1"}),
    #"Replaced Value1" = Table.ReplaceValue(#"Replaced Value","pièces","",Replacer.ReplaceText,{"description.1.1.1"}),
    #"Replaced Value2" = Table.ReplaceValue(#"Replaced Value1","pièce","",Replacer.ReplaceText,{"description.1.1.1"}),
    #"Split Column by Position" = Table.SplitColumn(#"Replaced Value2","description.1.1.1",Splitter.SplitTextByPositions({0, 2}, true),{"description.1.1.1.1", "description.1.1.1.2"}),
    #"Split Column by Delimiter5" = Table.SplitColumn(#"Split Column by Position","guid",Splitter.SplitTextByEachDelimiter({"/"}, QuoteStyle.Csv, true),{"guid.1", "guid.2"}),
    #"Split Column by Delimiter6" = Table.SplitColumn(#"Split Column by Delimiter5","guid.1",Splitter.SplitTextByDelimiter("-92", QuoteStyle.Csv),{"guid.1.1", "guid.1.2"}),
    #"Split Column by Delimiter7" = Table.SplitColumn(#"Split Column by Delimiter6","guid.1.1",Splitter.SplitTextByDelimiter("/", QuoteStyle.Csv),{"guid.1.1.1", "guid.1.1.2", "guid.1.1.3", "guid.1.1.4", "guid.1.1.5", "guid.1.1.6", "guid.1.1.7"})
in
    #"Split Column by Delimiter7"

 

WebsiteA is like:

 

let
    Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i44FAA==", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type text) meta [Serialized.Text = true]) in type table [#"Colonne 1" = _t]),
    #"Appended Query" = Table.Combine({Source, #"sl-achat-92400"}),
    #"Appended Query1" = Table.Combine({#"Appended Query", #"sl-achat-92800"}),
    #"Appended Query2" = Table.Combine({#"Appended Query1", #"sl-achat-92300"}),
    #"Appended Query3" = Table.Combine({#"Appended Query2", #"sl-achat-92240"}),
    #"Appended Query4" = Table.Combine({#"Appended Query3", #"sl-achat-92600"}),
    #"Appended Query5" = Table.Combine({#"Appended Query4", #"sl-achat-92150"}),
    #"Appended Query6" = Table.Combine({#"Appended Query5", #"sl-achat-92100"}),
    #"Appended Query7" = Table.Combine({#"Appended Query6", #"sl-achat-92130"}),
    #"Appended Query8" = Table.Combine({#"Appended Query7", #"sl-achat-92110"}),
    #"Removed Columns" = Table.RemoveColumns(#"Appended Query8",{"Colonne 1", "http://www.w3.org/2005/Atom", "title.2", "link", "description", "language", "lastBuildDate", "docs", "webMaster", "ttl", "image", "title.1.1.1", "guid.1.1.1", "guid.1.1.2", "guid.1.1.3", "guid.1.1.4", "guid.1.2", "description.1.1.1.1", "description.1.2", "author", "Attribute:version"}),
    #"Replaced Value2" = Table.ReplaceValue(#"Removed Columns",".htm","",Replacer.ReplaceText,{"guid.2"}),
    #"Replaced Value" = Table.ReplaceValue(#"Replaced Value2","-"," ",Replacer.ReplaceText,{"guid.1.1.7"}),
    #"Replaced Value1" = Table.ReplaceValue(#"Replaced Value","75","",Replacer.ReplaceText,{"guid.1.1.7"}),
    #"Replaced Value3" = Table.ReplaceValue(#"Replaced Value1","92","",Replacer.ReplaceText,{"guid.1.1.7"}),
    #"Replaced Value4" = Table.ReplaceValue(#"Replaced Value3"," €","",Replacer.ReplaceText,{"title.1.2"}),
    #"Renamed Columns" = Table.RenameColumns(#"Replaced Value4",{{"title.1.1", "Site"}, {"title.1.2", "Prix"}, {"link.1", "Lien"}, {"guid.1.1.5", "Type"}, {"guid.1.1.6", "Bien"}, {"guid.1.1.7", "Ville"}, {"guid.2", "ID"}, {"description.1.1.1.2", "Pièces"}, {"description.1.1.2", "m²"}, {"pubDate", "Publié le"}}),
    #"Removed Columns1" = Table.RemoveColumns(#"Renamed Columns",{"Type"}),
    #"Replaced Value5" = Table.ReplaceValue(#"Removed Columns1","..","",Replacer.ReplaceText,{"Pièces"}),
    #"Replaced Value6" = Table.ReplaceValue(#"Replaced Value5"," ","",Replacer.ReplaceText,{"Pièces"}),
    #"Replaced Value11" = Table.ReplaceValue(#"Replaced Value6","e.","",Replacer.ReplaceText,{"Pièces"}),
    #"Changed Type" = Table.TransformColumnTypes(#"Replaced Value11",{{"Pièces", Int64.Type}, {"m²", type text}}),
    #"Replaced Value7" = Table.ReplaceValue(#"Changed Type",",",".",Replacer.ReplaceText,{"m²"}),
    #"Replaced Value8" = Table.ReplaceValue(#"Replaced Value7"," ","",Replacer.ReplaceText,{"Prix"}),
    #"Replaced Value9" = Table.ReplaceValue(#"Replaced Value8"," ","",Replacer.ReplaceText,{"Prix"}),
    #"Changed Type1" = Table.TransformColumnTypes(#"Replaced Value9",{{"m²", type number}, {"Prix", type text}, {"ID", Int64.Type}}),
    #"Replaced Value10" = Table.ReplaceValue(#"Changed Type1","HT","",Replacer.ReplaceText,{"Prix"}),
    #"Split Column by Position" = Table.SplitColumn(#"Replaced Value10","Prix",Splitter.SplitTextByPositions({0, 3}, true),{"Prix.1", "Prix.2"}),
    #"Split Column by Position1" = Table.SplitColumn(#"Split Column by Position","Prix.1",Splitter.SplitTextByPositions({0, 1}, true),{"Prix.1.1", "Prix.1.2"}),
    #"Split Column by Position2" = Table.SplitColumn(#"Split Column by Position1","Prix.1.1",Splitter.SplitTextByPositions({0, 3}, true),{"Prix.1.1.1", "Prix.1.1.2"}),
    #"Split Column by Position3" = Table.SplitColumn(#"Split Column by Position2","Prix.1.1.1",Splitter.SplitTextByPositions({0, 1}, true),{"Prix.1.1.1.1", "Prix.1.1.1.2"}),
    #"Removed Columns2" = Table.RemoveColumns(#"Split Column by Position3",{"Prix.1.1.1.2", "Prix.1.2"}),
    #"Changed Type2" = Table.TransformColumnTypes(#"Removed Columns2",{{"Publié le", type datetimezone}})
in
    #"Changed Type2"

 

then WebsiteB-1 to WebsiteB-9 are like:

 

let
    Source = Xml.Tables(Web.Contents("http://fetchrss.com/rss/58b368ad8a93f83d3f8b4567584104475.xml",[Timeout=#duration(0,0,30,0)])),
    #"Added Custom" = Table.AddColumn(Source, "Ville", each "Courbevoie")
in
    #"Added Custom"

 

and WebsiteB is like:

 

let
    Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i44FAA==", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type text) meta [Serialized.Text = true]) in type table [#"Colonne 1" = _t]),
    #"Appended Query" = Table.Combine({Source, #"LeBonCoin-92400", #"LeBonCoin-92110", #"LeBonCoin-92600", #"LeBonCoin-92100", #"LeBonCoin-92130", #"LeBonCoin-92800", #"LeBonCoin-92300"}),
    #"Appended Query4" = Table.Combine({#"Appended Query", #"LeBonCoin-92240"}),
    #"Appended Query5" = Table.Combine({#"Appended Query4", #"LeBonCoin-92150"}),
    #"Expanded {0}" = Table.ExpandTableColumn(#"Appended Query5", "channel", {"title", "description", "pubDate", "generator", "http://www.w3.org/2005/Atom", "item"}, {"title", "description", "pubDate", "generator", "http://www.w3.org/2005/Atom", "item"}),
    #"Expanded {0}1" = Table.ExpandTableColumn(#"Expanded {0}", "item", {"title", "link", "description", "author", "pubDate", "guid"}, {"title.1", "link", "description.1", "author", "pubDate.1", "guid"}),
    #"Split Column by Delimiter" = Table.SplitColumn(#"Expanded {0}1","description.1",Splitter.SplitTextByEachDelimiter({"€"}, QuoteStyle.Csv, false),{"description.1.1", "description.1.2"}),
    #"Split Column by Delimiter1" = Table.SplitColumn(#"Split Column by Delimiter","description.1.1",Splitter.SplitTextByEachDelimiter({">"}, QuoteStyle.Csv, true),{"description.1.1.1", "description.1.1.2"}),
    #"Split Column by Delimiter2" = Table.SplitColumn(#"Split Column by Delimiter1","description.1.1.1",Splitter.SplitTextByEachDelimiter({"="}, QuoteStyle.Csv, true),{"description.1.1.1.1", "description.1.1.1.2"}),
    #"Split Column by Delimiter3" = Table.SplitColumn(#"Split Column by Delimiter2","guid",Splitter.SplitTextByEachDelimiter({".htm"}, QuoteStyle.Csv, true),{"guid.1", "guid.2"}),
    #"Split Column by Delimiter4" = Table.SplitColumn(#"Split Column by Delimiter3","guid.1",Splitter.SplitTextByEachDelimiter({"/"}, QuoteStyle.Csv, true),{"guid.1.1", "guid.1.2"}),
    #"Removed Columns" = Table.RemoveColumns(#"Split Column by Delimiter4",{"Colonne 1", "title", "description", "generator", "http://www.w3.org/2005/Atom", "title.1", "description.1.1.1.1", "description.1.1.2", "description.1.2", "author", "pubDate.1", "guid.1.1", "guid.2", "Attribute:version"}),
    #"Added Custom" = Table.AddColumn(#"Removed Columns", "Bien", each "Appartement"),
    #"Added Custom1" = Table.AddColumn(#"Added Custom", "Site", each "LeBonCoin"),
    #"Renamed Columns" = Table.RenameColumns(#"Added Custom1",{{"pubDate", "Publié le"}, {"link", "Lien"}, {"description.1.1.1.2", "Price"}, {"guid.1.2", "ID"}}),
    #"Renamed Columns1" = Table.RenameColumns(#"Renamed Columns",{{"Price", "Prix"}}),
    #"Changed Type" = Table.TransformColumnTypes(#"Renamed Columns1",{{"Prix", Int64.Type}, {"Publié le", type datetimezone}})
in
    #"Changed Type"

 

Finally, AllWebsites is like:

 

let
    Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i44FAA==", BinaryEncoding.Base64), Compression.Deflate)),let _t = ((type text) meta [Serialized.Text = true]) in type table [#"Colonne 1" = _t]),
    #"Removed Columns" = Table.RemoveColumns(Source,{"Colonne 1"}),
    #"Appended Query" = Table.Combine({#"Removed Columns", #"Se Loger Achat"}),
    #"Appended Query2" = Table.Combine({#"Appended Query", LeBonCoin})
in
    #"Appended Query2"

 

I have other queries but they have no direct relations to those above. Please let me know if you need the code for those as well.

 

Thanks for your help