Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Gilt für: Project Operations Integriert mit ERP, Project Operations Core, Project für das Web
Dieser Artikel enthält Informationen zu den Leistungsmerkmalen der Projektplan-APIs (Application Programming Interfaces) und nennt die bewährten Verfahren zur Optimierung der Nutzung.
Projektplanungsservice
Der Projektplanungsdienst ist ein mehrinstanzenfähiger Dienst, der in Microsoft Azure ausgeführt wird. Er wurde entwickelt, um die Interaktion zu verbessern, indem er eine schnelle und flüssige Erfahrung bietet, wenn Benutzer an Projekten arbeiten. Diese Verbesserung wird erreicht, indem Änderungsanforderungen angenommen und bearbeitet werden und anschließend das Ergebnis sofort zurückgegeben wird. Der Service bleibt asynchron zu Dataverse und hindert Benutzer nicht daran, andere Vorgänge auszuführen.
Die Projektplan-APIs basieren auf dem Projektplanungsdienst, um Anforderungen auszuführen. In späteren Abschnitten dieses Artikels werden diese Anforderungen ausführlicher beschrieben.
Die Projektzeitplan-APIs sind so konzipiert, dass sie mit den folgenden Projektstrukturplan-Entitäten (PSP) funktionieren:
- Projekt
- Projektaufgabe
- Abhängigkeit der Projektaufgaben
- Projektteammitglied
- Ressourcenzuweisung
Sowohl Standardfelder als auch benutzerdefinierte Felder werden unterstützt. Sofern nicht anders angegeben, werden alle gängigen Operationen unterstützt, z. B. Erstellen, Aktualisieren und Löschen. Weitere Informationen finden Sie unter Projektzeitplan-APIs verwenden, um Vorgänge mit Planungsentitäten auszuführen.
Als Teil der Projektplan-APIs wird ein Arbeitseinheitsmuster hinzugefügt. Dieses Muster wird als OperationSet bezeichnet, und Sie können es verwenden, wenn Sie mehrere Anforderungen in einer einzelnen Transaktion verarbeiten müssen.
Die folgende Abbildung zeigt den Ablauf, den ein Partner beim Verwenden dieses Features erlebt.
Schritt 1: Ein Client führt einen API-Aufruf an einen Open Data Protocol (OData)-Endpunkt ExecuteOperationSetV3aus. Dieser Aufruf führt die folgenden Aktionen aus:
- Erstellt ein OperationSet.
- Lädt das OperationSet mit Projektplanungs-API-Anforderungen.
- Sendet alle Änderungen an den Projektplanungsdienst in einem Batch.
Der Projektplanungsservice führt seine eigenen Validierungen für Anforderungen im Batch aus. Validierungsfehler machen den Batch rückgängig und geben eine Ausnahme an den Aufrufer zurück. Wenn der Project-Terminplanungsdienst den Batch erfolgreich akzeptiert, aktualisiert er den OperationSet-Status so, dass er das OperationSet verarbeitet.
Schritt 2: Dieser Schritt stellt die PERSIST-Phase dar. Der Projektplanungsservice schreibt den Batch bei einer Transaktion asynchron in Dataverse. Wenn der Schreibvorgang erfolgreich ist, wird das OperationSet markiert als Abgeschlossen. Bei Fehlern wird die Transaktion und der Batch zurückgesetzt und das OperationSet wird als Fehlgeschlagen markiert.
Leistungsmethodik
Sie führen alle Vorgänge 2.280 Mal aus und melden die P90-Ausführungszeitmessungen. Messen Sie Einzeldatensatz- und Massenoperationen.
Für eine Operation mit einem einzigen Datensatz enthält das OperationSet eine Anforderung. Bei Massenvorgängen enthält es 20, 50 oder 100 Anfragen. Melden Sie jede Massengröße separat.
Führen Sie diese Vorgänge auf einem UR58 Project Operations Core aus, das über Nordamerika, EMEA und APAC verteilt ist.
Ergebnisse
Einzel-Datensatzvorgänge
Die folgende Tabelle zeigt die Ausführungszeiten für die Erstellung, Aktualisierung und Löschung eines einzelnen Datensatzes. Die Zeiten sind in Sekunden angegeben.
Planen der API-Dauer: Von ExecuteOperationSetV3 benötigte Zeit
Gesamtdauer: Planen der API-Dauer + Projektspeicherzeit + Zeitaufwand für die Synchronisierung mit Dataverse
| Vorgang | Datensatztyp | Planen der API-Dauer – Erforderliche Felder | Planen der API-Dauer – Alle unterstützten Felder | Gesamtdauer – Pflichtfelder | Gesamtdauer – Alle unterstützten Felder |
|---|---|---|---|---|---|
| Erstellen | Projekt | 2,18 | 2.41 | 2,18 | 2.41 |
| Erstellen | Aufgabe | 1.67 | 1.73 | 7.86 | 12.63 |
| Erstellen | Zuweisung | 1,46 | 2.03 | 10.86 | 12.81 |
| Erstellen | Abhängigkeit | 1,43 | 1.55 | 9.07 | 10.35 |
| Aktualisieren | Projekt | 1.56 | 1.59 | 7.91 | 11.00 |
| Aktualisieren | Aufgabe | 1.51 | 1.72 | 7.79 | 18.72 |
| Aktualisieren | Teammitglied | 1.94 | 1,92 | 10.71 | 9.37 |
| Löschen | Aufgabe | 1.53 | 1.55 | 7.92 | 9,68 |
| Löschen | Zuweisung | 1.44 | 1.44 | 7,89 | 9.36 |
| Löschen | Abhängigkeit | 1.23 | 1.44 | 8.88 | 08:40 |
| Löschen | Teammitglied | 1.41 | 1.49 | 9.91 | 10.97 |
Hinweis
- Die Entität "Teammitglied " ist nicht im Erstellungsvorgang enthalten, da Sie ein Teammitglied direkt in Dataverse erstellen können.
- Aktualisierungsvorgänge der Entitäten Ressourcenzuweisungen und Abhängigkeit der Projektaufgaben werden nicht unterstützt.
- Der Löschvorgang für die Project-Entität wird nicht unterstützt.
Massenvorgänge
Die folgende Tabelle zeigt die Ausführungszeiten für die Erstellung, Aktualisierung und Löschung vieler Datensätze. insbesondere hat Microsoft die Ausführungszeiten für die Erstellung von 20, 50 und 100 Datensätzen in einem einzigen OperationSet gemessen. Die Zeiten sind in Sekunden angegeben.
Planen der API-Dauer: Von ExecuteOperationSetV3 benötigte Zeit
Gesamtdauer: Planen der API-Dauer + Projektspeicherzeit + Zeitaufwand für die Synchronisierung mit Dataverse
| Vorgang | Datensatztyp | Nein der Datensätze | Planen der API-Dauer – Erforderliche Felder | Planen der API-Dauer – Alle unterstützten Felder | Gesamtdauer – Pflichtfelder | Gesamtdauer – Alle unterstützten Felder |
|---|---|---|---|---|---|---|
| Erstellen | Aufgabe | 20 | 1,88 | 2.81 | 9.57 | 32.75 |
| Erstellen | Aufgabe | 50 | 2.41 | 3,17 | 12.82 | 36.96 |
| Erstellen | Aufgabe | 100 | 4.14 | 3.97 | 15,96 | 47.55 |
| Erstellen | Zuweisung | 20 | 2.61 | 1.98 | 12,51 | 26.62 |
| Erstellen | Zuweisung | 50 | 2,49 | 2.73 | 18.49 | 62.40 |
| Erstellen | Zuweisung | 100 | 3,85 | 4.04 | 35.43 | 68.69 |
| Erstellen | Abhängigkeit | 20 | 1.71 | 1,92 | 8.91 | 19.92 |
| Erstellen | Abhängigkeit | 50 | 2.38 | 2,58 | 18.72 | 39.73 |
| Erstellen | Abhängigkeit | 100 | 3.45 | 4,80 | 41.29 | 83.41 |
| Aktualisieren | Aufgabe | 20 | 2.03 | 5,36 | 8.82 | 20,42 |
| Aktualisieren | Aufgabe | 50 | 3.72 | 11,97 | 30.37 | 64.36 |
| Aktualisieren | Aufgabe | 100 | 5.94 | 20.21 | 69.37 | 155.52 |
| Aktualisieren | Teammitglied | 20 | 2.17 | 3.86 | 15.01 | 12.61 |
| Aktualisieren | Teammitglied | 50 | 3.88 | 6.33 | 17.89 | 21.84 |
| Aktualisieren | Teammitglied | 100 | 6.39 | 12.40 | 30.23 | 31,85 |
| Löschen | Aufgabe | 20 | 1.62 | 1.66 | 13.40 | 24.33 |
| Löschen | Aufgabe | 50 | 2,25 | 2.46 | 33.75 | 54.92 |
| Löschen | Aufgabe | 100 | 3.20 | 3.28 | 73.90 | 110.70 |
| Löschen | Zuweisung | 20 | 1.55 | 1.58 | 8.69 | 13.98 |
| Löschen | Zuweisung | 50 | 2.06 | 2.38 | 15.87 | 23.17 |
| Löschen | Zuweisung | 100 | 3.04 | 3.62 | 39.27 | 54.76 |
| Löschen | Abhängigkeit | 20 | 1,57 | 1.80 | 11.49 | 13,73 |
| Löschen | Abhängigkeit | 50 | 2.24 | 2.53 | 19.40 | 45.26 |
| Löschen | Abhängigkeit | 100 | 3.31 | 3.73 | 31.56 | 48.14 |
| Löschen | Teammitglied | 20 | 2,05 | 2.19 | 13.67 | 15.09 |
| Löschen | Teammitglied | 50 | 3.35 | 3.16 | 20.62 | 22.58 |
| Löschen | Teammitglied | 100 | 4.18 | 5.15 | 25.49 | 36.66 |
Hinweis
- Die Tabelle enthält keine Massenerstellungsvorgänge für die Entitäten "Project" und "Teammitglied", da die Laufzeit für diese Vorgänge der Laufzeit ähnelt, wenn die API zum Erstellen eines einzelnen Datensatzes mehrmals aufgerufen wird. Diese APIs werden sofort in Dataverse ausgeführt.
- Aktualisierungsvorgänge für ressourcenzuordnungen und Projektaufgabenabhängigkeitsentitäten werden nicht unterstützt.
- Löschvorgänge für die Project-Entität werden nicht unterstützt.
Bewährte Vorgehensweisen
Basierend auf den Ergebnissen des vorherigen Szenarios erzielen die APIs unter den folgenden Bedingungen eine bessere Leistung:
- Verwenden Sie die neuesten Versionen der Zeitplan-APIs, da sie für eine bessere Leistung optimiert sind.
- Gruppieren Sie so viele Operationen wie möglich. Die durchschnittliche Laufzeit für Massenvorgänge ist besser als die durchschnittliche Laufzeit für Einzeldatensatzvorgänge. Je kleiner die Anzahl der verwendeten Vorgangssätze ist, desto schneller ist die durchschnittliche Ausführungszeit.
- Legen Sie nur die Mindestattribute fest, die zum Ausführen Ihres Szenarios erforderlich sind. Seien Sie wählerisch bei den Arten von nicht erforderlichen Feldern, die in eine Operationssatz-Anfrage aufgenommen werden. Felder, die Fremdschlüssel oder Rollupfelder enthalten, wirken sich negativ auf die Leistung aus.