Wiederverwenden von Queries in Power BI

Es ist uns sicher allen schon mal passiert, dass wir eine Query erstellen wollten und  gedacht haben: “Das habe ich doch schon mal gemacht”.
Aber wo ist die entsprechende Query? In welcher Lösung habe ich diese verwendet? Der Beitrag zeigt, wie das Wiederverwenden von Queries in Power BI und Power Query auf einfache Art und Weise erfolgen kann.

Copy & Paste

Der einfachste Ansatz ist natürlich Copy und Paste. Dazu gibt es zwei Möglichkeiten:

  • Kopieren des M Codes im erweiterten Editor und Einfügen in eine neue Query
    oder
  • Kopieren der ganzen Query und Einfügen als neue Query in einer anderen Datei.

Nachteile dieses Ansatzes

Der Nachteil liegt auf der Hand. Sobald ein Teil des Codes angepasst wird, muss er in allen betroffenen BI Projekte manuell ergänzt werden, was enorm fehleranfällig ist und leicht vergessen geht. Was wir daher brauchen ist eine Möglichkeit, welche die Anpassungen nach Möglichkeit automatisch übernimmt.

Diese Lösung gibt es und ich zeige wie diese funktioniert. Leider geschieht dies aber nicht ganz automatisch, es müssen noch Aktualisierungen durchgeführt werden. Es wäre ja ansonsten auch zu einfach 😉

Wiederverwenden von Queries in Power BI und Power Query

Als erstes kopieren wir den ganzen “M” Code und speichern ihn in einer .txt Datei. Zur Veranschaulichung habe ich danach die ursprüngliche Query wieder gelöscht und eine neue Query mit folgendem Code erstellt:
let
Source = Text.FromBinary(File.Contents("C:\Users\xxxx\Desktop\Test_SharedQuery.txt")),
EvaluatedExpression = Expression.Evaluate(Source, #shared)
in
EvaluatedExpression

Die Anpassungen noch Speichern und Anwenden. Schon lädt Power Query die Daten neu. Dies funktioniert sowohl im Power BI Desktop als auch in Excel.

Anpassung des Querycode

Anpassungen im “M” Code müssen nur noch in der .txt Datei erfolgen. Ich habe den Code in der Datei wie folgt geändert:

let
Quelle = Access.Database(File.Contents("C:\Users\xxxx\Documents\01_oneDrive\06 Homepage\PowerBI-pro.com\Datasets\AdventureWorks.accdb"), [CreateNavigationProperties=true]),
_HumanResources_Employee = Quelle{[Schema="",Item="HumanResources_Employee"]}[Data],
#"OtherRemovedColumns" = Table.SelectColumns(_HumanResources_Employee,{"EmployeeID", "NationalIDNumber", "ContactID", "LoginID", "ManagerID", "Title", "BirthDate"})
in
#"OtherRemovedColumns"

Nach dem Speichern der .txt Datei muss noch jede betroffene BI Datei aktualisiert werden. Power Query respektive Power BI Desktop übernimmt alsdann die Anpassungen.

Schlussfolgerung

Die gezeigte Methode erlaubt die Anpassungen von “M” Code und das Ausrollen in die betroffenen BI Lösungen.

Anwendungsfälle gibt es einige. Das können zum Beispiel Kalenderdimensionen oder Tabellen mit Bewegungsdaten (Faktentabellen) sein, die in mehreren BI Projekten verwendet werden.

Zu berücksichtigen ist aber, dass die entsprechenden .pbix oder .xlsx Dateien aktualisiert werden müssen und danach die Datei im Power BI Service wieder veröffentlicht wird. Ansonsten kann der PBI Service die Anpassungen nicht übernehmen.

Update

ImkeF (http://www.thebiccountant.com) gab mir gerade den Hinweis, dass Chris Webb bereits im 2014 über das selbe Thema einen Blog verfasst hat. Ich bin drei Jahre zu spät….
https://blog.crossjoin.co.uk/2014/02/04/loading-power-query-m-code-from-text-files/

Mehr Artikel über Power Query findet Ihr im Power Query Online Buch.

Happy Querying!