Forum Discussion

Anonymous's avatar
Anonymous
Not applicable
7 years ago
Solved

Iterate Web.Contents

I have a table which has column URL which contains API endpoint URL with different parameters (start and end dates). If I try to use it directly with Web.Contents it gives error: Expression.Error:...
  • v-yulgu-msft's avatar
    7 years ago

    Hi Anonymous,

     

    Please try to modify M code as below:

    let
        StartYear = 2018,
        EndYear = 2019,
        Years = Table.FromList({StartYear..EndYear}, Splitter.SplitByNothing(), null,null, ExtraValues.Error),
        AddMonth = Table.AddColumn(Years, "Month", each {1..12}),
        ShowMonths = Table.ExpandListColumn(AddMonth, "Month"),
        CreateStartDate = Table.AddColumn(ShowMonths, "StartDate", each #date([Column1],[Month],1), type date),
        CreateEndDate = Table.AddColumn(CreateStartDate, "EndDate", each Date.EndOfMonth([StartDate]), type date),
        RequestHeaders = [Accept="application/json" , Authorization="Token xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"],
        OptionsRecord = [Headers=RequestHeaders],
        #"Changed Type" = Table.TransformColumnTypes(CreateEndDate,{{"StartDate", type text}, {"EndDate", type text}}),
        #"Added Custom Column" = Table.AddColumn(#"Changed Type", "StartDate2", each Text.Combine({Text.From([Column1], "lv-LV"), "-", Date.ToText(Date.From([StartDate]), "MM"), "-", Text.Middle(Text.From([Column1], "lv-LV"), 1, 2)}), type text),
        #"Added Custom Column1" = Table.AddColumn(#"Added Custom Column", "EndDate2", each Text.Combine({Text.From([Column1], "lv-LV"), "-", Date.ToText(Date.From([EndDate]), "MM"), "-", Date.ToText(Date.From([EndDate]), "%d")}), type text),
        #"URL" =  Table.AddColumn(#"Added Custom Column1", "URL", each "API ENDPOINT URL?start_date="&[StartDate2]&"&end_date="&[EndDate2]&"", type text),
        #"Response" = Table.AddColumn(#"URL", "Custom2", each Web.Contents([URL]))
    in
       #"Response"

    Best regards,

    Yuliana Gu