#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. Если вы найдете решение, не стесняйтесь публиковать его в качестве собственного ответа (для будущих поколений).