Запрос мощности Excel: как предотвратить несколько запросов к одному и тому же источнику (web json)?

#excel #powerquery

#excel #powerquery

Вопрос:

У меня есть конечная точка REST, которая запрашивает данные в JIRA и возвращает данные для activeSprint и previousSprint, чтобы пользователь мог построить диаграмму выгорания, аналогичную этой:

 {
   activeSprint: ['..burndown data array..'],
   previousSprint: ['..burndown data array..'] 
}
 

Итак, в power query я настраиваю первый запрос, который представляет только соединение — только с источником

JSON

 let
    Source = Json.Document(Web.Contents("https://.../burndown"))
in
    Source
 

Затем я выполняю reference запрос с именем JSON и создаю новый запрос с именем Active Sprint

 let
    Source = JSON,
    activeSprint = Source[activeSprint],
    burndownData = activeSprint[burndownData],
    #"Converted to Table" = Table.FromList(burndownData, Splitter.SplitByNothing(), null, null, ExtraValues.Error),
    #"Expanded Column1" = Table.ExpandRecordColumn(#"Converted to Table", "Column1", {"date", "dateFormatted", "storyPoints", "issueCount", "issues", "plannedStoryPoints"}, {"date", "dateFormatted", "storyPoints", "issueCount", "issues", "plannedStoryPoints"}),
    #"Changed Type" = Table.TransformColumnTypes(#"Expanded Column1",{{"dateFormatted", type datetime}, {"date", type datetime}})
in
    #"Changed Type"
 

затем я делаю то же, что указано выше, для предыдущего запроса Sprint.

Я группирую все запросы вместе в XLS в одну группу с именем TEST1, поэтому она выглядит так: введите описание изображения здесь

Когда я щелкаю правой кнопкой мыши по группе Test1 и нажимаю обновить, он отправляет 2 запроса к API. Могу ли я выполнить только один вызов, поскольку источник одинаков для обоих??

Зависимость в редакторе Power Query верна, но я не понимаю, почему он отправляет 2 отдельных запроса??

введите описание изображения здесь

Спасибо

Комментарии:

1. Я считаю, что вы не сможете, если не измените дизайн в своих запросах. Проблема в том, что PQ удаляет средние шаги из памяти (нет причин его удерживать). Однако я думаю, что вы могли бы использовать List.Buffer или Table.Buffer , если вы можете сделать все это в одном запросе.

2. Привет, Михал, ну, ответ в основном содержит данные для 2 разных таблиц, на которых пользователи планируют строить диаграммы. Есть ли способ создать 2 источника данных из одного запроса? Я по-прежнему считаю фундаментальным недостатком то, что соединение не может временно хранить данные для всех запросов, которые ссылаются на этот «запрос», пока они не будут завершены.

3. В итоге я написал собственную серверную службу, которая кэширует результаты (nodejs expressjs rxdb jira connector)

4. Если вы найдете решение, не стесняйтесь публиковать его в качестве собственного ответа (для будущих поколений).