Fortsetzung: Lösung für dynamische Datenquellen in Power BI

Wie man das Problem der dynamischen Datenquellen in Power BI löst, mit einem Beispiel!

In meinem letzten Blogbeitrag habe ich gezeigt, wie man den Zugriff mit Power BI an ein privates Trello-Board mithilfe der API bekommt. Am Ende des Blogbeitrages habe ich noch ein Zusatztipp gegeben wie man an die Anhänge der Cards/Aufträge vom Trello-Board kommt. Da gibt es allerdings ein Problem, das dadurch entsteht, da wir eine Variable in der Datenquelle für die Anhänge haben. Damit ist es eine dynamische Datenquelle, und dadurch kann es im Power BI-Dienst nicht aktualisiert werden.

In diesem Blogbeitrag wird an einem Beispiel gezeigt, wie das Problem zu lösen ist.

Problemmeldung im Power BI-Dienst

 

Man kann auch in Power BI-Desktop bereits herausfinden ob eine dynamische Datenquelle vorliegt, nämlich indem man in den Datenquelleneinstellungen nachsieht.  

Fehlermeldung in Power BI Desktop

Was ist eine dynamische Datenquelle?

Lösung des Problems

Beim Lösen des Problems müssen wir den Code für die Datenquelle ändern, die das Problem hervorruft.

Bei unserem Beispiel erscheint das Problem beim Einfügen der Attachments/Anhänge.

Hier kommt die Hilfe in Form des Befehls „RelativePath“. 

Und zwar braucht man eine Teil-URL von der Quelle, die das Problem macht. Die Teil-URL muss gültig sein und muss vor der Variable stehen.

Wie findet man die Teil-URL heraus?

Die Teil-URL muss zum einen vor der Variable stehen; die Variable darf nicht enthalten sein in der Teil-URL, und zum anderen muss die Teil-URL gültig sein.

Zur Hilfe für die Überprüfung, ob die Teil-URL gültig ist, benutze ich die Software “Postman”.

Man ändert den Befehl auf „GET“ und fügt dann die URL bis vor der Variable ein.

 

In unserem Fall kopiert man:

“https://api.trello.com/1/cards”

und fügt es dann nach dem „GET“-Befehl ein.

Postman-Befehl
Es erscheint eine Fehlermeldung “404 Not Found”, das heißt: die URL ist nicht gültig. Wir nehmen jetzt alle Abschnitte in der URL einzeln weg, und probieren es nach jedem Abschnitt aus.

Jetzt nehmen wir den Abschnitt “/cards” weg und wir probieren:  

“https://api.trello.com/1”

Postman-Befehl

Es kommt wieder der Fehler “404 Not Found”, dass heißt das die URL auch nicht gültig ist.

Jetzt nehmen wir den Abschnitt “/1” weg und wir probieren: https://api.trello.com
Postman-Befehl

Hier kommt die Meldung “200 OK” , das heißt die Teil-URL ist gültig.

Lösung

Nun öffnet man den „erweiterten Editor“ von der Abfrage mit den Attachments/Anhängen und sucht die Zeile wo die Datenquelle hinzugefügt wird. Falls man die Datenquelle wie in meinem vorherigen Blog-Beitrag mit „benutzerdefinierte Spalte“ hinzugefügt hat sollte die Spalte ungefähr so aussehen:

				
					#"Hinzugefügte benutzerdefinierte Spalte" = Table.AddColumn(#"Umbenannte Spalten", "Benutzerdefiniert", each Json.Document(Web.Contents("https://api.trello.com/1/cards/"&[AuftragsID]&"/attachments/?key=API-Key&token=Token")))
				
			

Nun ändern wir die URL und fügen nach der gültigen Teil-URL den Befehl „RelativePath“ ein, und dann nach “RelativePath” noch die restliche URL, so dass folgende Form entsteht: 

				
					"Json.Document(Web.Contents("Teil-URL",[RelativePath="Rest URL"])))". 
				
			

Das sieht dann so aus:

				
					#"Hinzugefügte benutzerdefinierte Spalte" = Table.AddColumn(#"Umbenannte Spalten", "Benutzerdefiniert", each Json.Document(Web.Contents("https://api.trello.com/",[RelativePath="1/cards/"&[AuftragsID]&"/attachments/?key=API-Key&token=Token"]))),
				
			

Guckt man jetzt in die Datenquelleneinstellungen kommt keine Fehlermeldung mehr, und dadurch haben wir das Problem gelöst, und können den Bericht im Power BI-Dienst auch aktualisieren.

Datenquelleneinstellungen ohne Fehlermeldung