Im vorigen Blogpost haben wir gezeigt, wie mit dem PowerApps Visual Daten direkt in Power BI erfasst werden können. Bei Verwendung eines Datasets im Importmodus können die erfassten Daten aber leider nicht sofort angezeigt werden, daher wird im folgenden Post gezeigt, wie mit dem Direct Query Modus genau diese Echtzeitaktualisierung erreicht werden kann.
Schritt 1: Power BI Anwendung im Direct Query Modus
Der Direct Query Modus steht derzeit nur bei den Konnektoren für relationale Datenbanken zur Verfügung, leider aber (noch) nicht für ODATA. Daher muß die Anwendung aus dem vorigen Blogpost umgestellt bzw. teilweise neu erstellt werden. Die Entscheidung für den Direct Query Modus wird bereits bei der Erstellung der Connection für eine neue Query getroffen (und kann jederzeit in einen Importmodus konvertiert werden, aber nicht vice versa):
Im Navigator werden die beiden benötigten Tabellen aus der zugrundeliegenden data1.io SQL Azure Datenbank selektiert ...
... und die Transformationen für das folgende Ausgabeformat in der Query hinterlegt. Das Datenmodell und die Beziehungen sind ident mit jenem im vorigen Blogbeitrag, lediglich werden die beiden Importtabellen jetzt im Direct Query Modus betrieben (und die anderen 3 Tabellen sind wieder Calculated Tables):
Im Data View können übrigens für Direct Query Tabellen keine Daten angezeigt werden:
Schritt 2: Verbinden der PowerApps Anwendung und aktivieren des Refresh-Triggers
Wir verwenden die exakt gleiche PowerApps Anwendung wie im vorigen Blogbeitrag, über die Funktion Edit des PowerApps for Power BI Visuals ...
... wird das PowerApps Studio aufgerufen. Als einzige Adaption erweitern wir die Befehlskette des Buttons Submit um den Befehl PowerBIIntegration.Refresh(). Dieser Befehl bewirkt die Aktualisierung der Power BI Report Page, mit dem das Objekt PowerBIIntegration verbunden ist. Aus Syntaxgründen muß als Trennzeichen für die auszuführenden Befehle 2 Semikolon verwendet werden:
Schritt 3: Interaktive Datenerfassung in Power BI
Nach jeder Erfassung (und dem Submit) wird jetzt auch ein Refresh der Report Page ausgelöst! Da die Visuals mit der Erfassungstabelle im Direct Query Modus verbunden sind, werden die neu erfassten Daten unmittelbar im Power BI Report angezeigt:
Evaluierung und Fazit
Die Datenerfassung und Aktualisierung funktioniert tatsächlich sehr unkompliziert! Das animierte GIF oben läuft in Originalgeschwindkeit, die Performance ist also wirklich sehr gut!
ABER: die Erfassungstabelle in der Demo enthält nur 20 Datensätze und es finden in der Query keine nennenswerten Transformationen statt. Das Measure für die Anzeige der Project Timelines ist zwar anspruchsvoll, bei nur 20 Projekten sind die Werte aber ebenfalls rasch ermittelt. In der Praxis ist die zentrale Herausforderung im Direct Query Modus, die Abfragen performant zu halten, da sonst nicht nur die Page mit der Datenerfassung sondern sämtliche Report Pages iZm mit dieser Tabelle langsam werden. Weiters muß die Datenquelle den DQ Modus unterstützen und die Funktionseinschränkungen von DQ dürfen in der Anwendung kein Problem darstellen.
Erfreulich ist, daß die gleiche PowerApps Anwendung in mehreren Power BI Anwendungen gleichzeitig eingebunden und verwendet werden kann.
Quellen
PowerApps custom visual for Power BI V2
POWERAPPS and POWER BI can do what?!? It's bananas!