Использовать параметры в Power Query

пожалуйста, помогите мне выяснить, как параметризовать запрос власти.

Я построил запрос PowerQuery, который запрашивает веб-службу для определенных данных и правильно манипулирует ею. Допустим, я запрашиваю систему управления задачами для моих сегодняшних задач. Запрос может выглядеть примерно так:

Web.Contents("http://intranet/tasks?assignee=John", [Content=Text.ToBinary("")]),

это работает нормально, но я хочу поделиться этой книгой с этим запросом со своими коллегами, чтобы они могли использовать ее для своих задач.

Web.Contents("http://intranet/tasks?assignee={INPUT HERE}", [Content=Text.ToBinary("")]),

В идеале, я хочу параметр где-то называется "Assignee" (например, в ячейке рабочей книги). Я хочу, чтобы пользователь этой книги мог ввести своего правопреемника, которого они хотят запросить, например, Питер, чтобы при обновлении данных запрос использовал свой параметр, например

Web.Contents("http://intranet/tasks?assignee=Peter", [Content=Text.ToBinary("")]),

Я бы не хотел, чтобы они открывали редактор PowerQuery и редактировали код запроса, потому что наши пользователи будут бояться до смерти делать это и, вероятно, будут делать ошибки. Ячейка в рабочей книге для выбора цессионарий я думаю, что это наиболее полезный подход.

это возможно? Если да - то как?

спасибо

29
задан artemb
25.03.2023 21:09 Количество просмотров материала 3460
Распечатать страницу

2 ответа

можно использовать Query запись для передачи параметров. Если значение ячейки сохранено в предыдущем шаге Name, вы можете добавить новый шаг с помощью кнопки FX в строке формул и введите следующую формулу:

= Web.Contents("http://intranet/tasks", [Content=Text.ToBinary(""), Query=[assignee = Name]])

Если у них включены уровни конфиденциальности, они увидят приглашение уровня конфиденциальности. Они могут либо назначить соответствующие уровни конфиденциальности (в данном случае оба могут быть организационными), либо отключить уровни конфиденциальности в диалоговом окне "Параметры".

0
отвечен Alejandro Lopez-Lago - MSFT 2023-03-27 04:57

Я нашел это решение в интернете, и это именно то, что я искал.

создать новый запрос, откройте расширенный редактор и вставьте следующий код:

let GetValue=(rangeName) => 
    let
      name = Excel.CurrentWorkbook(){[Name=rangeName]}[Content],
      value = name{0}[Column1]
    in
      value
    in GetValue

сохранить и теперь у вас есть запрос-функция, которую вы можете использовать в другом запросе, как это:

GetValue("Password")

то, что он будет делать, это искать диапазон под названием "пароль" в книге и принять значение первой ячейки в этом диапазоне.

0
отвечен artemb 2023-03-27 07:14

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх