Stell dir vor, dein Kunde kommt auf dich zu und möchte einen Statusbericht für sein aktuelles Projekt haben. Du machst dich sofort daran, einen Statusreport in Power BI zu erstellen. Der Inhalt soll auch die aktuelle Phase beinhalten, in der sich das Projekt befindet. Eigentlich sollte das kein Problem sein, schließlich nutzt du Planner Premium und alle relevanten Daten sind in der Datenbank vorhanden. Doch dann stellst du fest, dass es gar nicht so einfach ist, die Phaseninformationen des verwendeten Business Process Flows (BPF) zu finden. Nach längerer Suche wird dir klar, dass du die Informationen zu den aktuellen Phasennamen des BPFs in keiner Entität finden kannst. Früher waren diese in der Entität „processstages“ gespeichert, und man konnte sie über eine *:1 mit der Entität deines BPFs verknüpfen und dann mithilfe eines „related“-Feldes die gewünschten Phasen in die Tabelle übernehmen. Dies ist leider nicht mehr möglich, da die Tabelle „processstages“ derzeit weder in Power BI noch in der Dataverse eingesehen werden kann. Wie lässt sich dieses Problem lösen? In diesem Blog zeige ich dir einen Weg, wie du trotz der fehlenden „processstages“-Tabelle die Phasen dennoch auswerten kannst.
Inhaltsverzeichnis
- Benötigte Entitäten einbinden
- Auswerten des Prozessstatus
- Phasenauswertung erstellen
- Auswertung der Phasen

Benötigte Entitäten einbinden
Da Microsoft uns den Zugriff auf die Tabelle „processstages“ entzogen hat, bleibt uns nichts anderes übrig, als den Status eines BPF über den Prozessstatus auszulesen und manuell zu scripten.
Zuerst müssen wir die Verbindung zu den Entitäten herstellen und die benötigten Entitäten einbinden. Gehe dazu wie folgt vor: Öffne zunächst Power BI Desktop auf deinem Rechner und erstelle eine Verbindung zu deiner Planner Premium-Umgebung. Klicke dazu auf „Leeren Bericht“. Wähle im Ribbon-Menü den Button „Daten abrufen“ und klicke im erscheinenden Kontextmenü auf „Weitere“. Es öffnet sich ein neues Fenster mit dem Titel „Daten abrufen“. Wähle links die Kategorie „Power Platform“ und rechts „Common Data Service (Legacy)“. Klicke unten auf „Verbinden“. Füge nun die URL deiner Project-Umgebung (Planner Premium) hinzu.

Je nach Verbindung kann es sein, dass du dich erneut authentifizieren musst. Klicke dazu im nächsten Fenster auf „Als anderer Benutzer anmelden“ und wähle dann deinen Account aus. Du solltest nun verbunden sein. Klicke anschließend auf „Verbinden“.
Um den Prozessstatus des BPF auszuwerten, benötigst du die Entitäten (Tabellen) msdyn_project und die Entität new_DeineBPF. Achte darauf, welche Entität dein BPF verwendet. Klicke auf „Laden“.
Als Nächstes müssen wir die Abhängigkeiten zwischen beiden Entitäten herstellen. Klicke dazu auf der linken Seite auf die Option „Modellansicht“. Erstelle dann die Beziehung zwischen der Spalte projectid aus der msdyn_project-Tabelle und der Spalte bpf_msdyn_projectid.

Achtung: Eine 1:1-Beziehung ist okay, da ein Status zu einem Business Process Flow existiert.
Auswerten des Prozessstatus
Jetzt müssen wir ein wenig Fleißarbeit erledigen. Da wir die Tabelle „processstages“ nicht mehr im Zugriff haben (Stand 2024), müssen wir uns die Informationen über den aktuellen Status des Business Process Flow (BPF) selber scripten. Die Informationen hierzu stehen in der Spalte „activestageid“. Sobald du die Phase deines BPF-Flows änderst, wird die ID in der Spalte ebenfalls entsprechend geändert. Die Frage, die du beantworten musst, ist: Welche Phase hat welche ID? Hierzu empfehle ich das folgende Vorgehen:
Lege ein neues Projekt in Planner Premium (Project for the Web) an. Klicke in Power BI auf die Registerkarte „Start“ und klicke im Ribbon-Menü auf die Option „Aktualisieren“. Dadurch werden alle Informationen aus den Entitäten erneut eingelesen. Suche als Erstes die ID des gerade angelegten Projektes. Klicke auf der rechten Seite unter „Daten“ auf die Entität msdyn_project. Ich gebe im Suchfeld den Begriff „subject“ ein. Dadurch wird dir in der Entität msdyn_project die Spalte msdyn_subject angeboten. Klicke auf die Spalte. Klicke auf den Pfeil auf der rechten Seite der Spalte. Klicke in das Suchfeld und such das Projekt, das wir zuvor angelegt haben. Wähle das Projekt aus. In meinem Beispiel wähle ich das Projekt „Apollo 13“.

Gehe jetzt erneut auf der rechten Seite in das Suchfeld und gib die Spalte „projectid“ ein. Dir werden nun zwei Optionen angezeigt: einmal die Spalte msdyn_project in der Entität msdyn_project und einmal in der Entität new_deinBPF. Klicke auf die Spalte in der Entität msdyn_project. Wähle die angezeigte ID aus, klicke mit der rechten Maustaste darauf und kopiere den Namen in eine Textdatei.

Öffne jetzt einen Texteditor deiner Wahl und füge die Informationen aus der Zwischenablage in die Textdatei ein. Wie du sicherlich feststellen wirst, wird auch die Spaltenüberschrift mitkopiert. Für den nächsten Schritt benötigen wir jedoch lediglich die ID. Kopiere daher nur die ID erneut in die Zwischenablage.

Wechsle nun auf der rechten Seite in Power BI zur Entität new_DeinBPF. Suche die Spalte bpf_msdyn_projectid. Klicke rechts neben der Spalte auf den Pfeil nach unten und füge die projectid aus der Textdatei in das Suchfeld ein. Dir wird nun das Projekt angezeigt. Wähle das Projekt aus, indem du auf „OK“ klickst.

Suche jetzt die Spalte activestageid. Führe die Maus über die angezeigte ID, klicke darauf und kopiere die ID in die Zwischenablage. Wechsle anschließend wieder in den Editor deiner Wahl und füge die ID in die Datei ein. Notiere dir in der Datei dahinter, welchen Namen die Phase im BPF besitzt. In meinem Beispiel gehört die ID zur Phase „Vertrieb“.

Wechsle nun in die Model-Driven-App Project. Öffne das zuvor angelegte Projekt und wechsle in die nächste Phase. Klicke auf „Speichern“. Gehe dann in Power BI und klicke unter der Registerkarte „Start“ auf „Aktualisieren“. Kopiere die nun angezeigte ID erneut in die Textdatei. Entferne die Spaltenüberschrift. Notiere dahinter wieder den Namen der Phase. In meinem BPF wäre das „Durchführung“.

Wiederhole diesen Schritt für alle weiteren Phasen in deinem Projekt. Solltest du dynamische Phasen haben, blende diese ein und notiere dir auch die IDs für diese Phasen. Abschließend sollte die Textdatei ähnlich wie meine aussehen:

Phasenauswertung erstellen
Jetzt kannst du relativ einfach die aktuelle Phase des Projektes auswerten. Wechsle dazu in Power BI zur Entität msdyn_deinBPF. Klicke im oberen Bereich auf „Spaltentools“ und dann auf den Button „Neue Spalte“. Gib in der Eingabespalte den Namen „Projektphase =“ ein. Jetzt musst du eine IF-Formel anwenden. Überprüfe, ob die ID im Feld activestageid eingetragen wurde, und wenn dies der Fall ist, trage den Phasennamen in der Spalte ein. Der Code hierzu sieht wie folgt aus:

Projektphase =
IF(new_project[activestageid] = "ACTIVESTAGEID", "Pre-Sales",
IF(new_project[activestageid] = "ACTIVESTAGEID", "Vertieb",
IF (new_project[activestageid] = "ACTIVESTAGEID", "Planung",
IF (new_project[activestageid] = "ACTIVESTAGEID", "Durchführung",
IF (new_project[activestageid] = "ACTIVESTAGEID", "RFC-Prozess",
If(new_project[activestageid] = "ACTIVESTAGEID", "Abschluss", ""))))))
Auswertung der Phasen
Jetzt kannst du die aktuellen Phasen auswerten. Wechsle in Power BI zur Berichtsansicht und ziehe eine Tabelle in die Auswahl. Füge der Tabelle die Spalten msdyn_project und die Spalte Projektphase, die wir im vorherigen Kapitel angelegt haben, hinzu. Die Auswertung sollte nun wie folgt aussehen:

Solltest du weitere Fragen zu Project Online, Planner oder To Do haben, kannst du mir gerne eine E-Mail schreiben. Ich helfe dir gerne bei deinem Projekt.