Как программно редактировать параметры документа Power BI Desktop или источники данных с помощью C #? - PullRequest
0 голосов
/ 21 января 2019

У меня есть шаблон отчета, который встроен в Power BI Desktop и сохраняется как файл .pbix или .pbit.Этот шаблон использует базу данных SQL DirectQuery в качестве источника данных, тогда как адрес сервера и имя базы данных извлекаются в параметры.Существует также параметр, который содержит ReportId, который используется в запросах.

Power BI window screenshot

У меня также есть приложение C #, которое должно генерировать отчеты Power BI Desktop из этого шаблона.
Как создать отчет с помощьюконкретные параметры программно?
Что-то вроде Power BI Desktop работает само собой, когда вы открываете файл шаблона .pbit, вводите параметры и генерируете документ .pbix.

Я не нашел никаких библиотек SDK \ Interop для Power BI Desktop.
Я пытался открыть документ в формате ZIP, но файл DataModel заархивирован и, следовательно, не является правильно сформированным XML.
Я также пытался извлечь эти параметры в файл JSON и загрузить его в качестве источника данных, но относительные пути не поддерживаются Power BI.

1 Ответ

0 голосов
/ 23 января 2019

Нет SDK или API, которые вы можете использовать для этого.Если вы публикуете этот отчет в Power BI Online, вы можете использовать Обновить параметры и Обновить параметры в вызовах API группы REST, чтобы изменить значения параметров.Я считаю, что Power BI Reporting Server имеет аналогичный API, но у меня нет опыта работы с ним.

Вы можете попытаться опубликовать отчет в Интернете и сохранить его там (нет необходимости делиться им с кем-либо).Если вам нужен отчет с некоторым значением параметра, вызовите приведенные выше методы API для изменения значения, а затем загрузите измененный файл .pbix, используя Экспорт отчета или Экспорт отчета в группу .Это уродливо и не поточно-ориентировано, но может работать ...

Вы сказали, что смотрели файл DataModel в извлеченном .pbix.Я думаю, что параметры и M запросов находятся в DataMashup (найдите текст RootFormulaText или ReferencedQueriesFormulaText, чтобы найти их).Имена серверов и баз данных также там.Вы можете относительно легко изменить запрос M, значение существующего параметра или имя сервера / базы данных и попытаться повторно упаковать файл .pbix.Это может работать, но выглядит крайне неподдерживаемым.

Я пытался подключиться с помощью SSMS к SSAS отчета в Power BI Desktop, но я не нашел способа изменить значение параметра таким образом.Хотя я могу видеть их значения в исходных запросах (если параметр используется в качестве фильтра).

Я использую нечто подобное, но вместо параметров я встраиваю отчет в свое приложение ииспользуйте фильтры .Таким образом, все пользователи получают доступ к одному и тому же отчету, и мне не нужно «подгонять» .pbix для своих конкретных нужд.

Боюсь, это не ответ, который решит вашу проблему, ноЯ надеюсь, что это даст вам некоторые идеи, что вы можете или не можете сделать!

...