Forum Discussion
Formula.Firewall: Please rebuild this data combination.
Hi camargos88
thanks for the reply, much appreciated.
I have tried to put it in one query but it gave me the same output.
let
//creating my list in one query:
myItemList = Table.SelectRows(Table.Distinct( Table.SelectColumns(otherTable, { "key", "filteringValue"})), each ([filteringValue] = "KEYWORD"))[key],
// function to do one call per item
FnGetOneItem = (itemId) as table =>
let
myKey = "xxx",
pageLimit = 2,
myPageSize= 2,
order = "-modificationDate",
HTTPHeader = [RelativePath = itemId & "/query", Query = [pageSize = Number.ToText(myPageSize), page = Number.ToText(pageId), sort = order], Headers = [#"Ocp-Apim-Subscription-Key" = apimKey ]],
Source = Json.Document(Web.Contents("https://url.com", HTTPHeader)),
values = try Source[values] otherwise null,
results = [Values=values]
in
results,
data = List.Generate(
() => [pageId=1, result = FnGetOnePage(pageId)],
each [pageId]<= pageLimit and [result][Values] <> {},
each [pageId=[pageId]+1, url=urlroot & Number.ToText(pageId), result = [result] & FnGetOnePage(pageId) ]
),
output = Table.FromRecords(data)
in output,
Source = List.Generate(
() => [position=0, storeId = myItemList{position}, outputTable = FnGetOneItem(myItemList{position})],
each [position] < List.Count(myItemList),
each [position=[position]+1, storeId = myItemList{position}, outputTable = FnGetOneItem(myItemList{position})]
),
Final = Table.FromRecords(Source)
in
Final Thank you again, and if you have any idea, I'll take it
Try changing this part:
myItemList = Table.SelectRows(Table.Distinct( Table.SelectColumns(otherTable, { "key", "filteringValue"})), each ([filteringValue] = "KEYWORD"))[key],
It receives other table "otherTable", try querying this table in the same query as well.
- Brice_LE-LANN6 years agoRegular Visitor
I am sorry but I don't understand. By what should I replace it?
I need to query this table to get the list of items.
Thanks,
Brice
- camargos886 years ago
Community Champion
Do not refer it on the other query, copy the code that queries it from the source.
Try writing the query without dependencies.
You can use disable the parallel load tables for performance issues, so it will query just once.
- Brice_LE-LANN6 years agoRegular Visitor
(thanks for the reactivity)
My "otherTable" is exactly extracted from API calls. To be clear, I have:
- one query which calls an API (get Items), extract some values. (I do some graphs on those value)
- for some of those items, I want to do another API call to get different data
You advise me to:
- one query which calls an API (get Items), extract some values. (I do some graphs on those value)
- create another query which will call the same API, and for each of the value, do another call.
So I do not have depencies (but I call the first API twice).
Is that correct?