2015-11-04 3 views
2

Можете ли вы сказать мне, возможно ли сохранить отчеты из одной версии PowerBI (Desktop) и просто изменить источник данных для отображения тех же данных (отчета) в таким же образом, но из двух разных источников. Это будет означать, что у меня будет «шаблон» PowerBI, который я могу подключить к любому источнику данных (имея те же данные, конечно).Могу ли я использовать один и тот же PowerBI (рабочий стол) для разных источников

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

Спасибо, G

+2

В этот момент это невозможно. Если вы удалите источник данных или соединение будет разорвано, асоциальные диаграммы исчезнут. Активное предложение для команды Power BI [здесь] (https://support.powerbi.com/forums/265200-power-bi/suggestions/8471227-allow-custom-datasource-report-dashboard-templates). Возможно, мы скоро увидим эту функцию в ближайшем обновлении. –

+0

спасибо @alejandrozuleta, также хорошо знать, что был форум с идеей :) – GaGa

ответ

2

Там в шаблон, который вы можете использовать, чтобы сделать эту работу достаточно хорошо. Когда вы переходите к просмотру запросов в Power BI Desktop, при щелчке правой кнопкой мыши по запросу существует опция «ссылки». Это означает, что создается новый запрос, в котором исходное состояние является результатом запрошенного запроса. Это очень мощно!

Итак, что вы можете сделать, это ваш первый запрос будет что-то вроде: пусть Source = OData.Feed («feedname») в источнике

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

Вы можете принять это во все более сумасшедшие экстенты по своему желанию. Например, в течение некоторого времени я получал экспортированные файлы .CSV по электронной почте из одной из служб, которые я использовал. Чтобы «обновить» мой отчет, мне нужно будет изменить свой отчет, чтобы извлечь данные из нового файла (боль). Итак, что я сделал, я сделал набор запросов, которые 1) перечисляли файлы в данной папке, 2) выбирали самый последний файл, 3) загружали данные из этого последнего файла. Пока схема файла не изменилась, все отлично поработало!

Первый запрос:

let 
      FilesList = Folder.Files("C:\Users\username\Report Data"), 
      c1 = Table.TransformColumnTypes(FilesList ,{{"Date created", type datetime}}), 
      c2 = Table.SelectRows(c1, each Text.Contains([Extension], ".csv")), 
      c3 = Table.Sort(c2,{{"Date created", Order.Descending}}), 
      LatestCSVFileTable = Table.FirstN(c3,1), 

      AddedFileName = Table.AddColumn(LatestCSVFileTable , "File Path", each [Folder Path] & [Name]), 
      LatestCSVFileNameAsTable = Table.RemoveColumns(AddedFileName,{"Content", "Name", "Extension", "Date accessed", "Date modified", "Date created", "Attributes", "Folder Path"}), 
      FileNameToLoad = Record.Field(Table.First(LatestCSVFileNameAsTable), "File Path"), 

//If you're lucky, you can just use Csv.Document(File.Contents("C:\Examples\YourFileName.csv"),null,",",null,1252) 
//I wasn't so I needed some more complicated logic 

      FileContents = File.Contents(FileNameToLoad), 
      Source = Table.FromColumns({Lines.FromBinary(FileContents ,null,null,1252)}), 
     in 
      Source 

Второй запрос

let 
    Source = #"First Query's Name" 
    // continue your logic here 
in 
    Source 

Этот подход отлично работает. Обычно я помещаю первый запрос в папку, которую я называю «RAW», и второй запрос в папке, которую я называю «Данные», поэтому я знаю, какие из них нужно редактировать и которые оставить в покое.