
In meinem ersten Teil der Blogreihe hast du eine neue Dataverse Tabelle mit dem Namen „Abteilungen“ erstellt. Danach hast du das Formular und die Ansicht angepasst und die Sicherheitsrolle so modifiziert, dass alle mit einer zugewiesenen Project Lizenz Daten in der Tabelle erfassen können. Im zweiten Teil hast du dann die Tabelle bookableresources angepasst, sodass du deinen zugewiesenen Ressourcen eine entsprechende Abteilung zuweisen kannst. Somit hast du eine direkte Abhängigkeit zwischen Benutzer und Abteilung hergestellt. In diesem Blog-Artikel wirst du dich um die Kapazitäten kümmern. Ich werde dir zeigen, wie du in Project for the Web progressive Kapazitäten für die erstellten Abteilungen aus unserem ersten Teil erfassen kannst.
Inhaltsverzeichnis:
- Die Herausforderung
- Anpassen des Formulars
- Anpassen der Ansichten
- Einbinden in die Molde-Driven-App Projekt
- Berechtigungen setzen
- Kapazitäten für Abteilungen eintragen
Die Herausforderung
Wie ich schon geschrieben habe, müssen wir bei Ressourcenkapazitäten beachten, dass diese nie linear, sondern progressiv zur Verfügung stehen. Nehmen wir an, du hast zu Beginn des Jahres vier Projektleiter in deiner Abteilung, dann kann es sein, dass du im Februar bis März nur drei Projektleiter zur Verfügung hast und von Oktober bis Dezember eventuell sieben. Dieses Verhalten musst du mit deiner Kapazitätsplanung abfangen. Da diese Plandaten nicht in Project for the Web erfasst werden können, musst du eine neue Datenbank (Tabelle) anlegen und diese dann erneut, genau wie die Tabelle „Abteilung“, in deine Model-Driven-App einbinden. In der Tabelle werden dann für jeden Monat einmalig für die entsprechende Abteilung die Maximalkapazität erfasst.
Stellt sich noch die Frage, mit welchen Werten du die Maximalkapazität erfassen sollst. Da Project grundsätzlich auf Grundlagen der Aufwände in Stunden arbeitet, empfehle ich auch hier, auf der Stundenebene zu bleiben. Alle anderen Berechnungen und Formatierungen kannst du zu einem späteren Zeitpunkt in Power BI durchführen. Um bei der Erfassung der Maximalkapazität weniger Arbeit zu haben, solltest du die Anzahl an Stunden pro Monat in einer Spalte erfassen, dann eine weitere Spalte mit Anzahl Ressourcen und dann einfach in einer weiteren Spalte diese Werte multiplizieren. Dadurch lassen sich auch Sonderkonstellationen, wie Halbtageskräfte, Werkstudenten etc., einfacher abbilden.
Datenbank Kapazitätsplanung anlegen
Legen wir also eine neue Datenbank in den Dataverse an. Melde dich hierzu auf https://make.powerapps.com an. Klicke dann auf der linken Seite auf die Option „Tabellen“. Klicke dann im oberen Menü auf die Option „Neue Tabelle“ und wähle in dem sich öffnenden Kontextmenü die Option „Spalten und Daten hinzufügen“ aus. Klicke auf den Stift neben dem Namen „Neue Tabelle“. Gib als Name „Maximum Capacity“ ein. Gib ebenfalls eine Beschreibung für die Tabelle ein. Klicke abschließend auf „Speichern“.
Hinweis: Ich nehme hier den englischen Namen, da das Wort „Maximalkapazität“ den Umlaut „ä“ enthält. Dieser würde aus dem Wort entfernt werden, da die Dataverse im Moment keine Umlaute in den Namen unterstützt. Solltest du zu einem späteren Zeitpunkt die Tabelle zum Beispiel über Power Automate ansprechen wollen, entstehen oft Fehler, die aufgrund der Benennung beruhen.

Jetzt kommt eine kleine Herausforderung. Wir haben immer die Indexspalte „Neue Spalte“. Diese ist eine Pflichtspalte, wie du an dem roten Stern erkennen kannst. Wir wollen aber nur eine Suchspalte haben, in der wir genau wie bei der Ressource die Abteilung für den Eintrag auswählen können. Die Indexspalte können wir weder löschen noch leerlassen. Sie benötigt immer einen Wert. Hier gibt es einen kleinen Trick. Wir benennen die Spalte einfach um und lassen diese durch eine automatisch erstellte ID füllen. Klicke hierzu auf den Pfeil nach unten hinter dem Namen „Neue Spalte“ und wähle im Kontextmenü die Option „Spalte bearbeiten“ aus. Gib als Spaltennamen „ItemID“ ein und klicke abschließend auf „Aktualisieren“.

Jetzt musst du den Monat erfassen, für den die Kapazität gilt. Hierbei handelt es sich um ein einfaches Datumfeld ohne Uhrzeit. Klicke auf das „+“ Zeichen. Gib hier als Anzeigename „Monat“ ein und wähle als Datentyp die Option „Datum und Uhrzeit“ und als Format „Nur Datum“ aus. Setze den Auswahlschalter auf „Erforderlich“. Klicke auf „Speichern“.

Als Nächstes wollen wir die Stunden pro Monat erfassen, die ein Mitarbeiter leistet. Klicke hierzu erneut auf das „+“ Symbol. Gib als Anzeigename „Stunden (Monat pro Person)“ ein. Wähle als Datentyp „0.0 Dezimalzahl“ aus und setze auch hier den Schieberegler auf „Erforderlich“. Klicke abschließend auf „Speichern“.

Als Nächstes erfassen wir die Mitarbeiter pro Abteilung. Hierzu klickst du wieder auf das „+“-Symbol. Gib jetzt im Feld Anzeigename „Personenanzahl“ ein. Wähle als Datentyp „0.0 Dezimalzahl“ aus und setze auch hier den Schieberegler ebenfalls auf „Erforderlich“. Klicke abschließend auf „Speichern“.

Zum guten Schluss musst du noch eine Suchspalte hinzufügen. Hier möchtest du gerne genau wie bei den Ressourcen die entsprechende Abteilung auswählen können, für die der Datensatz zählt. Klicke also erneut auf das „+“-Symbol. Gib als Anzeigename „Abteilung“ ein. Als Datentyp wählst du „Suche“ und im Feld verknüpfte Tabelle wählst du die aus dem ersten Teil erstellte Tabelle „Abteilung“ aus. Setze die Schalter auf „Erforderlich“ und klicke abschließend auf „Speichern“. Deine Ansicht sollt nun wie folgt aussehen. Klicke dann auf „Erstellen“.

Jetzt kümmern wir uns um die Spalten „ItemID“ und „Max. Kapazität“. Legen wir zuerst den Autowert für die Spalte „ItemID“ fest. Klicke im Tabellendesigner auf den Link „Spalten“ unter der Rubrik „Schema“. Klicke auf die Spalte „ItemID“. Auf der rechten Seite öffnet sich ein Fenster. Wähle unter Datentyp die Option „AutoWert“. Im Auswahlfeld „AutoWert-Typ“ wählst du „Benutzerdefiniert“ aus. Klicke neben dem Formatfeld auf den Button „+ Anfügen“ und wähle hier die Option „Zufällige Zeichenfolge zu Format hinzufügen“ aus. Setze zwischen den beiden Blöcken ein „–“ und erhöhe die Anzahl der Zeichen bei beiden auf 6. Ändere den Standardwert auf „0000“. Im unteren Bereich wird dir eine Vorschau angezeigt. Klicke abschließend auf „Speichern“.

Jetzt brauchst du noch die Spalte mit dem Namen „Max. Kapazität“. In dieser soll berechnet werden, welche Maximalkapazität du für den Monat besitzt. Hier sollst du einfach die Stunden (Monat pro Person) mit der Anzahl der Personen multiplizieren.
Hinweis: Du kannst keine berechneten Spalten über den Tabellendesigner anlegen, diese können nur schon angelegten Tabellen zugewiesen werden!
Klicke im oberen Menü auf „+ Neue Spalte“. Gib als Anzeigename „Max. Kapazität“ ein. Wähle als Datentyp „0.0 Dezimalzahl“ aus. Wähle bei Verhalten „Berechnet“ aus und klicke dann auf „Speichern und bearbeiten“. Es öffnet sich ein weiteres Fenster. Klicke unter Aktion auf „+ Aktion hinzufügen“. Gib die Formel wie in der Grafik angezeigt ein. Klicke rechts unten auf den „Haken“. Klicke abschließend auf „Speichern und schließen“.

Anpassen des Formulars:
Achtung: Achte darauf, dass Popup-Fenster erlaubt sind. Ansonsten kann das neue Fenster nicht geöffnet werden! Sollte das der Fall sein und sich bei dir kein Fenster geöffnet haben, so erlaube das Öffnen von Popup-Fenstern und öffne die Spalte erneut. „Berechnet“ ist jetzt ausgegraut, klicke auf den Button „bearbeiten“.
Jetzt musst du als Nächstes noch das Formular und die Ansicht anpassen. Fangen wir mit dem Formular an. Klicke im oberen Bereich auf den Namen „Maximum Capacity“. Klicke dann auf den Link „Formulare“. Öffne das Formular „Information“ vom Typ „Hauptformular“. Die Felder „ItemID“ und „Owner“ benötigst du nicht. Da Pflichtfelder nicht gelöscht werden können, blenden wir diese einfach aus. Markiere das erste Feld „ItemID“ im Formular und wähle auf der rechten Seite die Option „Ausblenden“ aus. Wiederhole diesen Schritt mit dem Feld „Owner“. Das Formular sollte jetzt wie folgt aussehen. Sollte das der Fall sein, klicke im oberen Bereich auf „Speichern und veröffentlichen“.

Anpassen der Ansicht
Jetzt passt du noch die Ansicht an. Klicke im Formulardesigner im oberen Bereich auf „Zurück“. Klicke erneut im oberen Bereich auf den Namen „Maximum Capacity“. Klicke jetzt auf „Ansichten“. Öffne hier die Ansicht „Active Maximum Capacity“. Hier benötigst du die Spalten ItemID und Created On nicht. Klicke bei den genannten Spalten neben den Spaltennamen auf den Pfeil nach unten und wähle im sich öffnenden Kontextmenü „Entfernen“. Füge die Spalte „Max. Kapazität“ der Ansicht hinzu. Klicke hierzu auf „+ Spalte anzeigen“ und gib in der Suche „Max“ ein. Die Spalte wird dir vorgeschlagen. Klicke auf das angezeigte Suchergebnis, um die Spalte hinzuzufügen. Du kannst die Spalten per Drag & Drop an die Positionen ziehen, an denen du sie gerne hättest. Passe diese wie gezeigt an und klicke abschließend auf „Speichern und veröffentlichen“.

Einbinden in die Model-Driven-App Project
Wir haben nun alle Änderungen durchgeführt und können die Tabelle in die Model-Driven-App einbinden. Zum Einbinden der Tabelle benötigen wir den Power App Designer. Um diesen zu öffnen, schließe zuerst den Ansichtdesigner, indem du im oberen linken Bereich auf den Button „Zurück“ klickst. Klicke dann auf der linken Seite auf die Option „Apps (1)“. Gehe mit der Maus über die App „Project“ und wähle dann den angezeigten Stift (2).

Als Nächstes musst du dir überlegen, in welchem Bereich (z.B. Projects, Resources) du den Link zu der Tabelle hinzufügen möchtest. In diesem Beispiel werde ich den Link in die Rubrik „Resources“ zuweisen. Gehe mit der Maus über die Rubrik „Resources“. Dadurch wird am Ende des Namensfeldes eine Menüoption (1) eingeblendet. Klicke auf die Menüoption und wähle im Kontextmenü die Option „Neue Seite (2)“.

Es öffnet sich nun der Assistent für das Hinzufügen einer neuen Seite. Da wir aber keine Seite hinzufügen wollen, sondern unsere zuvor angelegte Tabelle, achte darauf, dass die Option „Dataverse-Tabelle“ markiert ist und klicke im unteren Bereich auf „Weiter“. Wähle die zuvor angelegte Tabelle. Gib bei aktivierter Option „Vorhandene Tabelle auswählen (1)“, im Suchfeld „Mindestens eine Tabelle auswählen (2)“ unsere erstellte Tabelle „Abteilung“ ein. Markiere diese. Achte darauf, dass die Option „In Navigation anzeigen (3)“ markiert ist und klicke dann auf den Button „Hinzufügen (4)“.

Abschließend kannst du nun die App veröffentlichen. Klicke hierzu im oberen Bereich auf den Button „Veröffentlichen“.
Berechtigungen setzen
Wir haben zwar nun eigentlich alle Konfigurationen abgeschlossen, allerdings müssen wir, genau wie bei der Tabelle „Abteilung“, die Berechtigungen setzen. Wie du sicher noch von meinem ersten Teil weißt, darf im Moment auch hier nur der Administrator Eintragungen vornehmen. Wir erlauben jetzt genau wie bei der Tabelle „Abteilungen“ der Sicherheitsrolle „Project Common“ Einträge zu erstellen.
Um die Berechtigungen zuzuweisen, gehst du wie folgt vor: Klicke im oberen Bereich auf das Zahnrad und wähle dann im Kontextmenü die Option „Admin-Center“ aus. Klicke auf der linken Seite auf die Option „Umgebungen (1)“. Klicke in der Mitte auf die Umgebung, in der die Model-Driven-App Project bereitgestellt wurde (2).

Klicke auf der rechten Seite auf den Link „Alle Anzeigen“ unter der Rubrik „Sicherheitsrollen“. Gib im oberen Suchfeld auf der rechten Seite einmal „Project“ ein. Hier werden dir die aktuellen Sicherheitsrollen angezeigt. Klicke auf die Sicherheitsrolle „Project Common“.

Ändere die Einstellung „Nur zugewiesene Tabellen anzeigen (1)“ auf „Nur nicht zugewiesene Tabellen anzeigen“. Gib wieder in der oberen rechten Suche den Tabellennamen „Maximum Capacity (2)“ ein. Dir wird im unteren Bereich die entsprechende Tabelle angezeigt. Ändere hier die Berechtigungen wie gewünscht. Da es sich bei mir um eine Demoumgebung handelt, gebe ich der Sicherheitsrolle „Project Common (3)“ die kompletten Berechtigungen auf Organisationsebene für die Tabelle. Klicke im oberen Bereich auf „Speichern und schließen“.

Kapazitäten für Abteilungen eintragen
Jetzt kannst du die Kapazitäten eintragen. In meinem Beispiel gehe ich davon aus, dass du 2 Projektleiter in deinem Unternehmen hast. Um die Stundenkalkulation abzukürzen, gehe ich von 220 PT in einem Jahr aus, multipliziere diese mit 8 Stunden und komme so auf 1760 Stunden. Diese teile ich durch 12 und komme dann auf 147 Stunden pro Monat.
Öffne jetzt die Model-Driven-App „Project“. Klicke auf der linken Seite auf die Option „Maximum Capacity“. Klicke im oberen Bereich auf „+ Neu“. Wähle als Datum den 01.01.2024 aus. Gib als Stunden pro Monat die 147 Stunden ein und als Anzahl der Ressourcen eine 2. Wähle zum Schluss noch die Abteilung aus. Klicke im oberen Bereich auf „Speichern und schließen“.

Trage jetzt für jeden Monat die gewünschte Kapazität ein. Wähle für jeden Monat jeweils den Ersten des jeweiligen Monats. Die Daten sollten jetzt wie folgt aussehen.
