Optimieren der Leistung von Project Online

Mit der Einführung von Project Online vor einigen Jahren konnten Organisationen aller Größen die umfangreichen Funktionen von Microsoft im Rahmen unserer Office 365 Cloudinfrastruktur nutzen.

Obwohl einer der offensichtlichen Vorteile der Verwendung eines cloudbasierten Diensts darin besteht, sich nicht mit Bereitstellung, Setup und Hardware- und Softwareoptimierung befassen zu müssen, gibt es dennoch einige Schritte, die Sie ergreifen können, um sicherzustellen, dass Ihre Organisation die beste Leistung aus Project Online erzielt.

Project Online bietet viele Konfigurations- und Anpassungseinstellungen, aber Anpassungen können sich auf die Leistung auswirken. In diesem Artikel werden die Auswirkungen auf die Leistung und die Kompromisse einiger der gängigsten Project Online-Einstellungen erläutert, sodass Sie fundierte Entscheidungen treffen können, wenn es um das Anpassen und Konfigurieren von Project Online geht.

Dieser Artikel ist Teil des Projekts Netzwerkplanung und Leistungsoptimierung für Office 365.

bewährte Methoden für Office 365 und SharePoint Online

Es gibt eine Fülle von Informationen zur Netzwerkplanung und Leistungsoptimierung für SharePoint Online und Office 365. Alle diese Informationen sind für Project Online Kunden relevant und sollten zusätzlich zu den folgenden bewährten Methoden für Project Online konsultiert werden.

Project Online Konfiguration und Anpassung

Viele Elemente einer Project Web App-Website können konfiguriert und angepasst werden, von administrativen Einstellungen über Berechtigungen bis hin zu Einstellungen für die Zusammenarbeit bis hin zu Aussehen und Verhalten. Sehen wir uns die Einstellungen an, die sich möglicherweise auf die Gesamtleistung Ihrer Project Web App-Website auswirken können.

Wir behandeln Folgendes:

  • Sicherheitsberechtigungsmodi

  • Enterprise-Projekttypen

    • Konfiguration der Projektwebsite

    • Synchronisierungsmechanismen zwischen Project Online und SharePoint Online

  • Active Directory-Ressourcenpoolsynchronisierung

  • Anpassung der Benutzeroberfläche und Aussehen und Verhalten

  • Projektdetailseiten (PDP) und Workflows

  • Ereignisbehandlung

  • OData und Berichterstellung

  • Project Online Kontingent

(Einige dieser Informationen gelten auch für Project Server 2013 und Project Server 2016.)

Berechtigungsmodi: SharePoint oder Project

Mit Project Online und Project Server 2013 haben wir im Gegensatz zum älteren Project-Berechtigungsmodus ein neues und vereinfachtes Berechtigungsmodell namens SharePoint-Berechtigungsmodus eingeführt. Den Vergleich zwischen beiden Modi finden Sie auf Technet.

Neue Project Online-Instanzen werden standardmäßig im SharePoint-Berechtigungsmodus bereitgestellt, und wir sind zuversichtlich, dass dieser Modus die Anforderungen der überwiegenden Mehrheit der Kunden erfüllt. Mit diesem Modus können Sie die Benutzerautorisierung über reguläre SharePoint-Gruppen und -Berechtigungen verwalten.

Der Projektberechtigungsmodus bietet ein hohes Maß an Anpassbarkeit, kann jedoch in Bezug auf die Leistung einen Preis haben. Wenn Sie Hunderte von Kategorien erstellen und sich stark auf dynamische Berechtigungen über Ihre Ressourcenaufschlüsselungsstruktur (Resource Breakdown Structure, RBS) verlassen, kann dies die Endbenutzererfahrung für Benutzer verlangsamen, die Zugriff auf viele Inhalte haben, z. B. Administratoren und Portfoliomanager.

Hinweis

Bei einem Wechsel zwischen dem SharePoint-Berechtigungsmodus und dem Project Server-Berechtigungsmodus werden sämtliche sicherheitsbezogene Einstellungen gelöscht. Wenn Sie vom SharePoint-Berechtigungsmodus in den klassischen Project Server-Berechtigungsmodus wechseln, müssen Sie Ihre Sicherheitsberechtigungsstruktur in Project Server 2013 und Project Server 2016 manuell konfigurieren. Wenn Sie vom Project Server-Berechtigungsmodus zurück zum SharePoint-Berechtigungsmodus wechseln, werden Ihre Sicherheitsberechtigungsinformationen aus Project Server 2013 und Project Server 2016 gelöscht.

Empfehlung:

Behalten Sie nach Möglichkeit den Standardmäßigen SharePoint-Berechtigungsmodus bei, um die Gesamtleistung zu verbessern. Wenn Sie den Project-Berechtigungsmodus verwenden müssen, beschränken Sie Ihre Anpassungen so weit wie möglich.

Enterprise-Projekttypen

Ein Enterprise Project Types (EPT) stellt einen Wrapper dar, der Phasen, Phasen, einen einzelnen Workflow und Projektdetailseiten (PDPs) kapselt.

EPTs ermöglichen es Ihnen auch, Folgendes zu definieren:

  • Konfiguration der Projektwebsite

  • Synchronisierungsmechanismen zwischen Project Online und SharePoint Online

Konfiguration der Projektwebsite

Projektwebsites basieren auf sharePoint-Kernfunktionen. Das Erstellen von Projektwebsites ist kein einfacher Prozess, und die Entscheidung, ob und wann Ihre Organisation Möglicherweise Projektwebsites benötigt, kann einen großen Weg zur Verbesserung der allgemeinen Endbenutzererfahrung machen.

Viele Organisationen verwenden Project Online, um Projektvorschläge zu sammeln und zu bewerten, bevor sie entscheiden, welche Projekte finanziert werden sollen. Wenn Projektwebsites bei der ersten Veröffentlichung eines Projekts automatisch erstellt werden sollen, erhalten alle Projektvorschläge eine Projektwebsite, auch diejenigen, die den Schnitt nicht vornehmen. Diese unnötigen Websites müssten anschließend manuell bereinigt werden.

Ein besserer Ansatz, wenn Sie sich für die Verwendung von Projektwebsites entscheiden, besteht darin, dass der Benutzer entweder entscheiden kann, wann seine Website für die Zusammenarbeit erstellt werden soll, oder, noch besser, sie von einem Workflow erstellen zu lassen, sobald der Projektvorschlag ein bestimmtes Phasengate erreicht.

SharePoint Online beschränkt derzeit die Anzahl der Unterwebsites, die für jede Websitesammlung erstellt werden können. Mit einem EPT können Sie definieren, in welcher Websitesammlung neue Projektwebsites erstellt werden sollen. Auf diese Weise können Sie eine Projektwebsite für jedes Projekt erstellen, da Sie sie über mehrere Websitesammlungen erstrecken können.

Projektwebsites in PWA-Websitesammlungen.

Wenn Sie beispielsweise über eine Websitesammlung für Ihre IT-Abteilung verfügen, können Sie Ihr EPT für IT-Projekte so konfigurieren, dass Projektwebsites https://contoso.sharepoint.com/sites/IT von erstellt werden.

Speicherort für die Projektwebsiteerstellung.

Empfehlung:

Wenn Ihre Organisation Projektwebsites verwendet, wählen Sie die Option aus, um sie bei Bedarf und nicht automatisch zu erstellen. Dies beschleunigt die erste Veröffentlichungserfahrung und vermeidet das Erstellen unnötiger Websites und Inhalte.

Für jedes EPT können Sie diese Option wie folgt konfigurieren:

  1. Klicken Sie unter Project Web App-Einstellungen auf Enterprise-Projekttypen.

  2. Wählen Sie das EPT aus, in das Sie die Einstellung ändern müssen.

  3. Wählen Sie auf der Seite EPT-Einstellungen im Abschnitt Projektwebsite die Option Benutzern die Auswahl erlauben aus.

    Optionen zum Erstellen von Projektwebsites.

    Erstellen Sie Projektwebsites in einer eigenen Websitesammlung vom EPT. Halten Sie die Anzahl der Projektwebsites in einer Websitesammlung unter den SharePoint Online-Grenzwerten für SharePoint Online.

Was synchronisieren Sie?

Project Online wird auf SharePoint Online auf die gleiche Weise ausgeführt wie Project Server auf SharePoint Server. Daher müssen wir eine bestimmte Anzahl von Komponenten zwischen zwei Systemen synchron halten. Diese Synchronisierungen können zeitaufwändig sein und je nach Ihren geschäftlichen Anforderungen manchmal unnötig sein. In diesem Artikel werden all diese verschiedenen Synchronisierungssysteme untersucht, damit Sie entscheiden können, welche Sie benötigen und welche Sie sicher deaktivieren können. Einige dieser Einstellungen sind bereits standardmäßig deaktiviert.

In den folgenden Abschnitten wird folgendes erläutert:

  • Synchronisieren von Benutzerberechtigungen für Ihre Projektwebsite

  • Synchronisieren von SharePoint-Aufgabenlisten für Enterprise-Projekte

Benutzerberechtigungen synchronisieren

Projektwebsites sind Arbeitsbereiche, in denen Projektteams zusammenarbeiten, Dokumente hochladen und Probleme auslösen können. Wenn benutzersynchronisierungsberechtigungen aktiviert sind, werden die entsprechenden Project-Websiteberechtigungen aktualisiert, wenn einer Person die Berechtigung für ein Projekt erteilt wird.

Diese Synchronisierung erfolgt jedes Mal, wenn das Projekt veröffentlicht wird. Der Nachteil für die Synchronisierungsfreundlichkeit besteht in der Leistung, z. B. je mehr Benutzer und Websites synchronisiert werden müssen, desto langsamer der Vorgang, insbesondere wenn Sie massenveröffentlichungen, importieren oder mehrere Projekte (mit Projektwebsites) oder Gruppenmitgliedschaften aktualisieren, die eine Neusynchronisierung der Projektwebsiteberechtigungen erfordern.

Für jedes EPT können Sie definieren, ob Synchronisierungsbenutzerberechtigungen aktiviert sind.

Hinweis

Wenn Projektwebsites in einer anderen Websitesammlung erstellt werden als in der Website, in der sich die Project Web App-Website befindet (z. B. der Speicherort von https://contoso.sharepoint.com/sites/pwa Project Web App ist und das EPT Projektwebsites in https://contoso.sharepoint.com/sites/ITerstellt), wird die Synchronisierung von Benutzerberechtigungen nicht unterstützt.

Empfehlung:

Es wird dringend empfohlen, die Synchronisierungsoption Project-Websiteberechtigungen zu deaktivieren, wenn Folgendes für Ihre Bereitstellung zutrifft:

  • Sie verfügen über eine große Anzahl von Ressourcen (>1000)

  • Sie verfügen über eine große Anzahl von Projekten, die eine Projektwebsite erfordern (>1000).

  • Sie verfügen über eine große Anzahl von Ressourcen, denen Zugriff auf die meisten Projektwebsites gewährt werden muss.

  • Projektwebsites werden außerhalb der Standardwebsitesammlung erstellt (Synchronisierung ist deaktiviert)

Im Folgenden finden Sie einige Optionen, die Sie für die Verwaltung Ihrer Project-Websiteberechtigungen in Betracht ziehen sollten:

  • Wenn Ihre Projektteams einen geringen Umsatz haben, sollten Sie die Synchronisierung von Project-Websiteberechtigungen deaktivieren, um die Leistung von Projektveröffentlichungs- und Projektdetailseiten zu verbessern. Anschließend müssten Sie Ihren Projektwebsites die Berechtigung manuell erteilen oder entfernen, wenn jemand einem Projektteam beitritt oder dieses verlässt.

  • Wenn der Zugriff für alle Benutzer in PWA gewährt werden muss und er Ihren vorhandenen Gruppenberechtigungen entspricht, sollten Sie Ihre Project-Websites so konfigurieren, dass sie von der übergeordneten PWA-Website erben .

  • Wenn der Websitezugriff auf bestimmte Rollen ausgerichtet ist, erstellen Sie eine oder mehrere Gruppen, die diesen Rollen zugeordnet sind (möglicherweise, wenn Sie die Gruppensynchronisierung aktiviert haben, können Sie dieselben Gruppen verwenden), und gewähren Sie diesen Gruppen Zugriff auf die Project-Website.

Für jedes EPT können Sie Benutzerberechtigungen synchronisieren wie folgt aktivieren:

  1. Klicken Sie unter Project Web App-Einstellungen auf Enterprise-Projekttypen.

  2. Wählen Sie das EPT aus, in das Sie die Einstellung ändern müssen.

  3. Wählen Sie auf der Seite EPT-Einstellungen im Abschnitt Synchronisieren die Option Benutzerberechtigungssynchronisierung aus.

    Benutzerberechtigungssynchronisierung.

Synchronisieren von SharePoint-Aufgabenlisten für Enterprise-Projekte

SharePoint-Aufgabenlisten synchronisieren ist standardmäßig deaktiviert, um die Geschwindigkeit der Projektveröffentlichung zu verbessern. Dies trägt auch dazu bei, den Übergang zwischen Projektdetailseiten zu beschleunigen. Wenn Sich Ihre Benutzer auf die Aufgabenliste und deren Zeitachsenvisualisierung auf der Project-Website verlassen, können Sie dieses Feature aktivieren und überprüfen, ob ihre Auswirkungen auf die Leistung der Projektveröffentlichung angemessen sind.

Hinweis

Wenn Projektwebsites in einer anderen Websitesammlung als der Website erstellt werden, in der sich die Project Web App-Website befindet (z. B. der Speicherort von https://contoso.sharepoint.com/sites/pwa Project Web App ist und das EPT Projektwebsites in https://contoso.sharepoint.com/sites/ITerstellt), wird das Synchronisieren von SharePoint-Aufgabenlisten nicht unterstützt.

Empfehlung

Die Option SharePoint-Aufgabenlisten synchronisieren war für die Verwendung mit kleinen Projektplänen vorgesehen. Wenn das Projekt über eine große Anzahl von Vorgängen verfügt, dauert die Synchronisierung bei der Veröffentlichung einige Zeit, da jeder Vorgang einzeln aktualisiert werden muss. Beispielsweise dauert es einige Minuten, einen Projektplan mit 500 Aufgaben mit der SharePoint-Aufgabenliste zu synchronisieren. Obwohl sich der Warteschlangenauftrag in einer separaten Korrelation befindet und das Speichern und Bearbeiten des Projektplans nicht blockiert, wird empfohlen, die Option SharePoint-Aufgabenlisten synchronisieren nicht zu aktivieren. Es wird empfohlen, nur Projekte mit weniger als 250 Aufgaben zu synchronisieren.

Diese Option ist standardmäßig deaktiviert. Aktivieren Sie die Synchronisierung von SharePoint-Aufgabenlisten nur, wenn Ihre Benutzer das Feature für jeden EPT benötigen. So konfigurieren Sie diese Option:

  1. Klicken Sie unter Project Web App-Einstellungen auf Enterprise-Projekttypen.

  2. Wählen Sie das EPT aus, in das Sie die Einstellung ändern müssen.

  3. Wählen Sie auf der Seite EPT-Einstellungen im Abschnitt Synchronisieren die Option SharePoint-Aufgabenlisten synchronisieren aus.

    Synchronisieren von SharePoint-Aufgabenlisten.

Active Directory-Ressourcenpoolsynchronisierung

Die Active Directory-Ressourcenpoolsynchronisierung an sich hat keine besonderen Leistungsprobleme und kann in Wenigen Minuten Tausende von Ressourcen in Ihre Project Web App-Instanz importieren. Seine downstream-Auswirkung auf andere Teile des Systems kann sich jedoch auf die Leistung auswirken. Der primäre Prozess, um ein Auge zu behalten, ist die zuvor erwähnte Ressourcenberechtigungssynchronisierung. Wenn ihre Active Directory-Gruppenmitgliedschaft einen großen Umsatz aufweist und Sie Ihren Ressourcenpool häufig synchronisieren müssen, sollten Sie alle potenziellen Nachgelagerten Auswirkungen auf zugehörige Berechtigungssynchronisierungsaufträge überwachen.

Empfehlung:

Beschränken Sie die Active Directory-Synchronisierung auf Ressourcengruppen, die das System tatsächlich verwenden müssen, und überwachen Sie alle potenziellen Berechtigungsprobleme nach der Synchronisierung großer Gruppen. (Klicken Sie zum Konfigurieren der Synchronisierung von Active Directory-Enterprise-Ressourcenpools unter Project Web App-Einstellungen auf Active Directory-Ressourcenpoolsynchronisierung.

Anpassungen von PWA-Seiten und -Ansichten

Seitenanpassungen

Die SharePoint-Plattform bietet dank ihrer modularen Webpartinfrastruktur und Unterstützung für benutzerdefinierte Seiten hervorragende Anpassungsfunktionen. Wenn Sie Logos, benutzerdefinierte Webparts und neue Designs hinzufügen, hat dies aufgrund der Vorteile von Servernähe, geringer Latenz und hoher Bandbreite möglicherweise keine wesentlichen Auswirkungen auf die Leistung in einer lokalen Infrastruktur. Bei einem Onlinedienst sieht die Sache jedoch anders aus.

Wenn Sie ein Logo oder eine Grafik mit einer großen Dateigröße hochladen, kann dies seiten in einer lokalen Bereitstellung etwas verlangsamen, aber online ist die Leistung beim Laden von Seiten erheblich.

Das gleiche Prinzip gilt, wenn Sie einer Seite mehrere Webparts hinzufügen. Es kann verlockend sein, eine benutzerdefinierte Seite mit mehreren Webparts zu erstellen, aber wenn Benutzer die Daten nicht tatsächlich nebeneinander sehen müssen, ist es besser, separate spezialisierte Seiten zu haben, als alles an einem Ort zu haben. Wenn Benutzer nur den Inhalt eines Webparts auf der Seite benötigen, müssen sie trotzdem länger warten, bis die Seite geladen und die Daten für alle anderen Webparts angezeigt werden.

Empfehlung:

Wenn Sie Seiten anpassen, behandeln Sie Ihre Project Online Website wie jede normale Internetwebsite, und erstellen Sie so viele wie möglich einfache Seiten.

Anpassungen von Ansichten

Auch hier ist die Einfachheit ein großer Weg zur Verbesserung der Seitenladeleistung. Organisationen können benutzerdefinierte Ansichten erstellen, indem sie mehrere Project Web App-Seiten verwenden, einschließlich Projektcenter, Ressourcencenter, Aufgaben und Arbeitszeittabellen.

Je mehr Inhalt angezeigt wird, desto langsamer wird das Seitenrendering. Sie können jede Seitenladezeit um einige Sekunden reduzieren, wenn Sie Benutzern eine größere Anzahl einfacher und gezielter Ansichten anstelle einiger "All-in-One"-Ansichten bereitstellen.

In den folgenden Beispielen dauert die zweite Ansicht durchschnittlich 2 bis 3 Sekunden weniger als die erste Ansicht.

Screenshot der angepassten Project Center-Ansicht.

Screenshot der Ansicht

Empfehlung:

Wenn Sie Ansichten konfigurieren, bieten Sie Benutzern einfache spezialisierte Ansichten für eine schnellere Navigation anstelle einer komplexen All-in-One-Ansicht, die in den meisten Fällen unnötige Daten laden würde.

Benutzeransichtseinstellungen

Projektcenter: Gruppierung nach mit Rollups

Benutzer können verschiedene Möglichkeiten konfigurieren, wie die Ansicht für sie gerendert werden kann, einschließlich der Gruppierung von Daten nach verschiedenen Feldern. Bei Verwendung von group by können Daten für unterstützte Aggregationsfelder (z. B. Summierung von Kosten oder ein benutzerdefiniertes Feld) zusammengefasst werden. Das Berechnen dieser Aggregatwerte fordert den Dienst auf, alle Werte zu laden, um die Summe anzuzeigen.

Beispiel für Daten, die nach Feldern gruppiert und für Aggregationsfelder zusammengefasst wurden.

Empfehlung:

Deaktivieren Sie die Rollupoption im Menüband, es sei denn, der Benutzer muss die rollup-Werte anzeigen.

Rollupoption.

Projektcenter: Gantt-Diagramm

Der Diagrammteil der Gantt-Diagrammansicht zeigt jedes Projekt als Sammelbalken an.

Empfehlung:

Deaktivieren Sie die Option Gantt im Menüband, es sei denn, der Benutzer muss das Gantt-Diagramm anzeigen.

Gantt-Diagrammoption.

Benutzerdefinierte Projektdetailseiten und Workflows

Zusätzlich zu der oben angegebenen Empfehlung für das Seitendesign sind Projektdetailseiten (PDPs) besonders dadurch gekennzeichnet, dass sie eine Neuberechnung des gesamten Projekts auslösen und Workflowaktionen auslösen können. Beides kann je nach Ihren Anpassungen kostspielige Vorgänge in Bezug auf die Leistung sein.

Project Online und Project Server verfügen über zwei Hauptaktualisierungsprozesse für Projektinformationen:

  • Aktualisierungen, die eine Neuberechnung der Planung erfordern (siehe Liste unten)

  • Nicht planbezogene Felder, z. B. Projektname, Beschreibung und Besitzer.

Es wird empfohlen, beide Datentypen auf demselben PDP zu aktualisieren, um zu vermeiden, dass beide Aktualisierungsprozesse gleichzeitig ausgelöst werden.

Im Folgenden finden Sie eine Liste der gängigsten Aktionen, die eine Neuberechnung des Zeitplans erfordern.

  • Änderungen am Projektkalender

  • Änderungen an den folgenden Datumsfeldern:

    • Anfangstermin

    • Endtermin

    • Statusdatum

    • Aktuelles Datum

  • Änderungen an benutzerdefinierten Projektfeldern

  • Wenn das Projekt Abhängigkeiten von Lieferumfangen aufweist

Eine zweite Möglichkeit zur Verbesserung der PDP-Leistung besteht darin, die Anzahl von Webparts und benutzerdefinierten Feldern zu reduzieren, die auf jedem PDP angezeigt werden. Wenn Ihre Geschäftsprozesse häufige Aktualisierungen derselben Gruppe von Feldern erfordern, erstellen Sie eine dedizierte PDP mit nur diesen Feldern, um die Auslastung zu verbessern und Zeit zu sparen. Die jederzeitige Anzeige aller benutzerdefinierten Felder führt zu einem hohen unnötigen Mehraufwand.

Empfehlung:

Erstellen Sie einfache, spezialisierte PDPs, und vermeiden Sie die Vermischung von zeitplanbezogenen und nicht geplanten Updates.

Massenaktualisierungen benutzerdefinierter Felder in Workflows mit der neuen REST-API

Das einzelne Aktualisieren von Projektwerten für benutzerdefinierte Felder in einem Workflow erfordert eine separate Serveranforderung mithilfe der Aktion Projektfeld festlegen. Dies führt zu einer Leistungsminderung, wenn viele benutzerdefinierte Felder gleichzeitig in einem Netzwerk mit hoher Latenz und geringer Bandbreite aktualisiert werden.

Um dieses Problem zu beheben, gibt es eine CSOM-Methode zum Massenaktualisierung von benutzerdefinierten Feldern. Diese Methode erfordert, dass Sie ein Wörterbuch übergeben, das den Namen und die Werte aller benutzerdefinierten Felder enthält, die Sie aktualisieren möchten.

API für die bedarfsgesteuerte Bereitstellung von Projektwebsites

Jedes Projekt kann über eine eigene dedizierte SharePoint-Website verfügen, auf der Teammitglieder zusammenarbeiten, Dokumente freigeben und Probleme auslösen können. Diese Websites können automatisch bei der ersten Veröffentlichung oder manuell vom Projektmanager über Project Pro oder vom Administrator über Project Web App-Einstellungen erstellt werden, oder sie können einfach deaktiviert werden.

Sie können die CreateProjectSite('')-Methode verwenden, um zu entscheiden, wann ihre Projektwebsites erstellt werden sollen. Dies ist besonders nützlich für Organisationen, die ihre Websites erst erstellen möchten, nachdem ein Projektvorschlag eine bestimmte Phase in einem vordefinierten Workflow erreicht hat, anstatt bei der ersten Veröffentlichung. Dadurch wird die Leistung der Projekterstellung erheblich verbessert, indem die Erstellung von Projektwebsites zurückgestellt wird.

Ereignisbehandlung

Add-Ins können auf Ereignisse reagieren, die in Project Online ausgelöst werden. Beispielsweise kann ein Add-In zusätzliche Aktivitäten ausführen, nachdem ein Projekt erstellt wurde. Benutzer müssen möglicherweise warten, bis diese Add-Ins die Behandlung der Ereignisse abgeschlossen haben, bevor sie mit Project Online weiterarbeiten können.

Empfehlung:

Project Online sollte so konfiguriert werden, dass bestimmte Ereignisse asynchron behandelt werden, um die Wartezeit von Benutzern zu minimieren. Bitten Sie dazu den Entwickler aller Add-Ins, die Sie verwenden, sicherzustellen, dass deren Code After-Ereignisse asynchron verarbeiten kann. In diesem Artikel erfahren Sie mehr über Die Vorgehensweisen, die sie bei der Behandlung dieser Ereignisse befolgen können.

Wenn der Entwickler bestätigt, dass das Add-In für die Änderung bereit ist, müssen Sie die Einstellung Asynchrone Ereignisverarbeitung aktivieren auf der Seite PWA-Einstellungen aktivieren.

  1. Wählen Sie auf der Seite PWA-Einstellungen im Abschnitt Betriebsrichtliniendie Option Zusätzliche Servereinstellungen aus.

  2. Stellen Sie sicher, dass im Abschnitt Asynchrone Ereignisbehandlung für After-Ereignisse die Option Asynchrone Nach-Ereignisverarbeitung aktivieren ausgewählt ist.

    Asynchrone Ereignisbehandlung für die Einstellung After-Ereignisse.

  3. Wählen Sie Speichern aus.

    Anschließend müssen Sie Ihre Instanzen testen, um sicherzustellen, dass alles ordnungsgemäß funktioniert.

    Hinweis

    Diese Einstellung kann nur vom Websitesammlungsadministrator angezeigt und geändert werden.

OData und Berichterstellung

ProjectData OData Service

Project Online verfügt über einen OData-Berichterstellungsdienst, der eine Möglichkeit zum Erstellen von Berichten/Visualisierungen für die im Dienst gespeicherten Daten bietet. Die ProjectData-OData-Berichtsdienst-API ist hier definiert.

Aufrufe des ProjectData OData-Berichtsdiensts werden von SharePoint Online gesteuert. Lesen Sie den Artikel Vermeiden einer Drosselung oder Blockierung in SharePoint Online , um sicherzustellen, dass die Aufrufe weniger wahrscheinlich gedrosselt werden, und dass Empfehlungen für Wiederholungen und exponentielle Backoffs ordnungsgemäß implementiert werden.

Darüber hinaus reduziert die In diesem Dokument beschriebenen Empfehlungen die Anzahl, Länge und Häufigkeit der Aufrufe, die zum Abrufen von Daten erforderlich sind. Wenn eine Drosselung häufig auftritt, überprüfen Sie in der gesamten Organisation, ob mehrere Abteilungen dieselben Daten abfragen können oder nicht die in diesem Artikel beschriebenen bewährten Methoden befolgen und alle betreffen.

Berichterstellung mit Zeitphasen

In Project Online können Sie die Granularitätsstufe auswählen, die Sie für Berichtsdaten mit Zeitphasen benötigen. Die Optionen und Auswirkungen der Ebenen sind vollständig unter Konfigurieren des Rollups von Zeitphasenberichtsdaten in Project Online dokumentiert. Wenn Sie eine Ebene auswählen, die die geringste Datenmenge für Ihre Szenarien generiert, können die Daten schneller im Endpunkt des OData-Berichterstellungsdiensts sichtbar sein und die Zeit für den Download verkürzen.

Die Liste der Optionen in der Reihenfolge der Leistung (von der meisten bis zur geringsten Leistung, die mit der Menge der generierten Daten korreliert):

  • Nie

  • Geschäftszeiträume

  • Monatlich

  • Wöchentlich

  • Täglich

Geschäftszeiträume haben den großen Vorteil gegenüber monatlich , da Berichtsdaten nur für definierte Geschäftsperioden gespeichert werden, während Monatlich Daten für die gesamte Dauer aller Projekte enthält.

Mithilfe des Project OData-Diensts können Sie Informationen aus Ihrer Project Online Instanz für die Berichterstellung extrahieren.

Empfehlung:

Speichern Sie die geringste Menge an Daten mit Zeitphasen, die ihren geschäftsspezifischen Anforderungen entspricht. Verwenden Sie nicht Täglich, wenn Workflows auf die Veröffentlichung warten, bis sie abgeschlossen sind. Täglich kann viel Zeit in Anspruch nehmen, um die erforderlichen Daten zu generieren, die dazu führen, dass Workflows warten.

Abfragen des Diensts

Es gibt Grenzwerte für die Anzahl von Entitäten, die in einer Abfrage des ProjectData-OData-Diensts zurückgegeben werden können. Daher erfordert das Abfragen einer großen Datenmenge, dass mehrere Webanforderungen an den Dienst gesendet werden, wodurch der Netzwerkaufwand und die Latenz für jede Anforderung erhöht werden.

Empfehlung:

Vermeiden Sie es, vollständige Datenladevorgänge zu aktualisieren. Diese Aktualisierungen können die Leistung des PWA-Standorts insbesondere in Spitzenzeiten beeinträchtigen, was zu einer Beeinträchtigung der Gesamtleistung von Benutzervorgängen in PWA oder Drosselung führt.

Führen Sie Odata-Aktualisierungsaktionen nach Stunden aus. Entscheidungen zur Verwaltung von Echtzeit- oder echtzeitnahen Berichten sollten auch die Leistungseinbußen im Hinblick auf die Benutzererfahrung auf der PWA-Website berücksichtigen. Wenn Anforderungen zum Aktualisieren aller Elemente bestehen, lesen Sie den Abschnitt "SQL Server Integration Services (SSIS) – Empfohlen für große Datasets".

Für eine Project Web App-Instanz, die eine große Anzahl von Entitäten enthält, z. B. Projekte, Zuweisungen oder Aufgaben, sollten Sie die zurückgegebenen Daten auf mindestens eine der folgenden Arten einschränken. Wenn Sie die zurückgegebenen Daten nicht einschränken, kann die Abfrage die Standardgrenzwerte überschreiten und die Serverleistung beeinträchtigen.

  • Verwenden Sie immer eine $filter-URL-Option und $select, um die Daten einzuschränken. Die folgende Abfrage filtert beispielsweise nach Projektstartdatum und gibt nur vier Felder in der Reihenfolge des Projektnamens zurück:

    http://ServerName/ProjectServerName/_api/ProjectData/Projects?$filter=ProjectStartDate gt datetime'2012-01-01T00:00:00'&$orderby=ProjectName&$select=ProjectName,ProjectStartDate,ProjectFinishDate,ProjectCost
    
  • Vermeiden Sie benutzerdefinierte Felder, bei denen es sich um mehrwertige Nachschlagevorgänge handelt. Zusätzliche Berechnungen sind erforderlich, um benutzerdefinierte Feldwerte zu verarbeiten, bei denen es sich um mehrwertige Suchvorgänge handelt. Diese Felder können nicht von mehreren Optimierungen profitieren, die für gängigere Kundenszenarien implementiert wurden. Wenn benutzerdefinierte Felder mit mehreren Werten bereits konfiguriert wurden, verbessern Sie die Suchgeschwindigkeit und -zuverlässigkeit, indem Sie sicherstellen, dass keines dieser Felder in Ihrer gefilterten Odata-Abfrage angegeben wird.

  • Abfragen von Entitäten nach Schlüssel oder Zuordnung. Wenn Sie Entitäten abfragen, lesen Sie das Metadatendokument unter https://yourdomain.sharepoint.com/sites/PWA/_api/ProjectData/$metadata. Wenn möglich, fragen Sie die Entität auf eine der folgenden Arten ab:

  • Keys

    Hinweis

    Wenn mehr als eine Taste vorhanden ist, funktioniert die Verwendung der ersten Taste besser als die verwendung der zweiten Taste.

  • Verbände

    Beispielsweise können Sie die Assignment-Entität über AssignmentId und ProjectId abfragen:

    https://ServerName/ProjectServerName/_api/ProjectData/Assignments?$filter=AssignmentId eq guid'719d849a-79b4-e911-b073-00155d9c3d12' and ProjectId eq guid'b5b02399-79b4-e911-b073-00155d9c3d12'
    
    or
    
    https://ServerName/ProjectServerName/_api/ProjectData/Assignments(AssignmentId=guid'719d849a-79b4-e911-b073-00155d9c3d12',ProjectId=guid'b5b02399-79b4-e911-b073-00155d9c3d12') 
    

    über AssignmentId:

    https://ServerName/ProjectServerName/_api/ProjectData/Assignments?$filter=AssignmentId eq guid'719d849a-79b4-e911-b073-00155d9c3d12'
    

    über ProjectId:

    https://ServerName/ProjectServerName/_api/ProjectData/Assignments?$filter= ProjectId eq guid'b5b02399-79b4-e911-b073-00155d9c3d12'
    

    über Zuordnung über Project:

    https://ServerName/ProjectServerName/_api/ProjectData/Projects(guid'263fc8d7-427c-e111-92fc-00155d3ba208')/Assignments
    
  • Führen Sie mehrere Abfragen durch, um Daten seite für Seite zurückzugeben, indem Sie den operator $top und den operator $skip in einer Schleife verwenden. Die folgende Abfrage ruft z. B . die Probleme 11 bis 20 für alle Projekte in der Reihenfolge der Ressource ab, die dem Problem zugewiesen ist:

    https://ServerName/ProjectServerName/_api/ProjectData/Issues?$skip=10&$top=10&$orderby=AssignedToResource
    
  • Vermeiden Sie das Abrufen des Projekt-/Vorgangs-/Ressourcennamens beim Abfragen der Zuordnungsentität. Der Dienst führt eine zusätzliche Verarbeitung durch, um die entsprechenden Namen abzurufen. Wenn die Daten bereits aus anderen Abfragen abgerufen wurden, schließen Sie sie beim Abfragen der Zuweisung nicht in den $select Filter ein.

Empfehlung:

  • Begrenzen Sie die Menge an Daten, die Sie zur Laufzeit abfragen, indem Sie serverseitige Filterung verwenden, um nur die benötigten Spalten abzurufen. Die Auswirkungen sind am deutlichsten bei benutzerdefinierten Feldern. Fügen Sie die benutzerdefinierten Felder nur hinzu, wenn Sie sie benötigen.

  • Stellen Sie sicher, dass Sie nach dem Entitätsschlüssel filtern. Der Entitätsschlüssel ist indiziert und bietet eine wesentlich leistungsfähigere Datenabruferfahrung. Sie können die Schlüssel für jede Entität finden, indem Sie das Dienstmetadatendokument in Ihrer PWA-Instanz überprüfen: https://Contoso.sharepoint.com/sites/PWA/_api/ProjectData/$metadata

Abrufen von Daten und Erstellen von Berichten

PowerBI

Wenn die Datenmenge klein ist, kann Power BI regelmäßig Daten aus dem Project OData-Dienst lesen und eine Vielzahl von Dynamics-Berichten bereitstellen. Ein Beispielinhaltspaket finden Sie hier.

Wenn die Datenmenge in Project Online groß ist, können Sie trotzdem eine Teilmenge der Daten einbinden, solange sie die hier beschriebenen Grenzwerte für die PowerBI-Datengröße erfüllt. Eine weitere Möglichkeit besteht darin, Ihre Berichte in einem sich verschiebenden Fenster zu erstellen, d. h., Projekte zu filtern, die in den letzten 30 Tagen aktiv waren, oder die Ressourcenkapazität für die nächsten 6 Monate anzuzeigen. Im Abschnitt $filter/$select finden Sie bewährte Methoden, da PowerBI die dienstseitigen Filteroptimierungen möglicherweise nicht nutzt.

Excel OData

Excel kann verwendet werden, um Daten herunterzuladen und benutzerdefinierte Visualisierungen/Berichte zu erstellen. Wenn die Datenmenge in Project Online groß ist, kann eine Teilmenge der Daten ein verschobenes Fenster verwenden, d. h. Projekte filtern, die in den letzten 30 Tagen aktiv waren, oder Anzeigen der Ressourcenkapazität für die nächsten 6 Monate. Im Abschnitt $filter/$select finden Sie bewährte Methoden, da Excel die dienstseitigen Filteroptimierungen möglicherweise nicht nutzt.

SQL Server Integration Services (SSIS)

Mithilfe von SSIS können Project Online Berichtsdaten aus dem Project OData-Dienst in eine lokale SQL Server-Datenbank oder in Microsoft Azure heruntergeladen werden. Nach dem Herunterladen können alle Berichte/Visualisierungen erstellt werden. Ein weiterer Prozess ist erforderlich, um die lokalen Daten mit Project Online synchron zu halten.

Verwenden Sie bei Verwendung von SSIS das folgende Muster, für das Project Online optimiert wurde. Das Muster reduziert die Zeit, die zum Abrufen und Synchronisieren der lokalen Daten benötigt wird. Laden Sie außerdem nur die Felder herunter, die zum Erfüllen der geschäftsspezifischen Anforderungen erforderlich sind. Je weniger Felder abgefragt werden, desto schneller können die Daten abgerufen werden.

Vollständige Synchronisierung

Rufen Sie die aktuelle Momentaufnahme der Berichtsdaten ab, an denen Sie interessiert sind. Verwenden Sie die folgende Methode, um Project und zugehörige Entitäten effizient abzurufen.

Beispiel: Verwenden der Project-Entität .

  1. Fragen Sie die ProjectId aus der Project-Entität ab, einschließlich aller zusätzlichen Filter. Filtern Sie beispielsweise nach Projekten, die bestimmte Anfangs- oder Endtermine aufweisen.

  2. Fragen Sie die Project-Entität ab, indem Sie die Felder angeben, die heruntergeladen werden müssen, und filtern Sie nach einer einzelnen ProjectId, die zuvor abgerufen wurde. Fügen Sie projectModifiedDate ein, wie es im folgenden Deltasynchronisierungsmuster verwendet wird.

  3. Wiederholen Sie Schritt 2 für jede ProjectId. Laden Sie außerdem für jede ProjectId die Daten für verwandte Entitäten herunter.

Beispiel: Verwenden der Task-Entität :

  1. Fragen Sie die TaskId aus der Task-Entitätsfilterung nach allen zusätzlichen Feldern sowie der Projekt-Id aus dem vorherigen Schritt ab.

  2. Fragen Sie die Task-Entität ab, indem Sie die Felder angeben, die heruntergeladen werden müssen, und filtern Sie nach einer einzelnen TaskId, die zuvor abgerufen wurde. Schließen Sie das TaskModifiedDate ein, wie es im folgenden Deltasynchronisierungsmuster verwendet wird.

  3. Wiederholen Sie den Vorgang für jede TaskId.

    Verwenden Sie auf ähnliche Weise denselben Ansatz für jede verknüpfte Entität, z. B. Assignment, TaskTimephasedData.

Die vorherigen Schritte gelten für andere Gruppen von Entitäten, z. B. beim Abrufen von Arbeitszeittabelleninformationen:

  • Arbeitszeittabelle: Rufen Sie die TimesheetId und ModifiedDate basierend auf Filterkriterien ab, dann Arbeitszeittabellendatensätze, dann TimeSheetLines filtert nach der TimeSheetId und fahren Sie mit anderen verwandten Entitäten fort, um sicherzustellen, dass Sie nach Primärschlüssel-IDs (TimesheetUID) und Änderungsdatumsfeldern angeben.

Beim Abrufen von Ressourcenentitätsinformationen:

Deltasynchronisierung

Überprüfen Sie in regelmäßigen Abständen, um die lokale Kopie der Berichtsdaten auf dem neuesten Stand zu halten. Wiederholen Sie die folgenden Schritte nach Bedarf für die jeweilige Gruppe von Berechtigten, z. B. Arbeitszeittabelle, Ressource...

  1. Fragen Sie alle ProjectIds und das Änderungsdatum des Projektendpunkts mit $filter Kriterien ab.

  2. Löschen Sie das lokale Projekt und verwandte Datensätze (Vorgänge, Zuordnungen usw.), in denen die ProjectId nicht mehr vorhanden ist.

  3. Wenn sich das Dienständerungsdatum und das lokale Änderungsdatum für den Projektdatensatz unterscheiden, fragen Sie den Projektendpunkt nach allen erforderlichen Feldern ab, die jeweils nach einer einzelnen ProjectId gefiltert werden. Laden Sie außerdem für jede ProjectId die Daten für verwandte Entitäten herunter.

Beispiel: Verwenden der Task-Entität :

  1. Abfrage nach der TaskId und TaskModifiedDate von Task entität filtert alle zusätzlichen Felder sowie die Projekt-Id aus dem vorherigen Schritt, in dem die Daten geändert wurden, d. h. das Datum der Projektdienständerung stimmt nicht mit dem lokalen Änderungsdatum überein.

  2. Löschen Sie lokale und verwandte Datensätze für TaskId, die nicht mehr vorhanden sind.

  3. Wenn sich das Datum der Dienständerung und das lokale Änderungsdatum unterscheiden, fragen Sie den jeweiligen Entitätsendpunkt ab, der TaskId und den Entitätsprimorschlüssel übergibt, und aktualisieren Sie die lokale Version.

Wiederholen Sie dies für jede verknüpfte Entität, z. B. Assignment, TaskTimephasedData.

Project Web App-Kontingent

Standardmäßig verfügt die Project Web App-Website über einen Grenzwert von 25 GB und ist von dem Grenzwert für alle Daten getrennt, die in der SharePoint-Websitesammlung gespeichert sind, in der Project Web App aktiviert ist. Die Verwendung der Berichterstellungsgranularitätsoptionen zum Reduzieren Ihres Datenvolumens kann dazu beitragen, das Kontingent zu erreichen.

Hinweis

Das PWA-Kontingent kann (in Schritten) auf maximal 100 GB erhöht werden. Nach Erreichen des Kontingentlimits ist eine neue PWA-Website erforderlich. Erhöhungen über 50 GB erfordern, dass die PWA-Website nicht mehr die Option zur Granularität der täglichen Berichterstellung mit Zeitphasen verwendet. Wenden Sie sich an Microsoft, um die Erhöhung des PWA-Websitekontingents zu besprechen.

Schlussbemerkung

Project Online erfordert wie jeder cloudbasierte Dienst, der im Internet ausgeführt wird, eine spezifische Optimierung, um die beste Leistung im Vergleich zu einer lokalen Bereitstellung zu erzielen.

Obwohl wir das System ständig verbessern, um die Leistung zu beschleunigen, können Sie in der Zwischenzeit einige Schritte unternehmen, um Ihren Endbenutzern eine gute Erfahrung zu bieten.

Zusammenfassungsempfehlung:

  • Verwenden Sie nach Möglichkeit den SharePoint-Berechtigungsmodus.

  • Aktivieren Sie nur die Features, die Sie tatsächlich verwenden.

  • Halten Sie Seiten und Anpassungen so einfach und einfach wie möglich, um seitenladezeiten zu beschleunigen.

  • Verwenden Sie die serverseitige Filterung, oder exportieren Sie Odata-Feeddaten in eine SQL Server-Datenbank, um mehr Flexibilität bei der Berichterstellung zu erzielen.

  • Wählen Sie eine Berichtsgranularitätsoption aus, die die geringste Datenmenge verwendet, die Ihre Berichtsanforderungen erfüllt.

Project Online: Grenzen und Begrenzungen der Software