Projektzeitplan der API-Leistung

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.

Screenshot des Dataverse- und Projektplanungsdienstablaufs.

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:

  1. Erstellt ein OperationSet.
  2. Lädt das OperationSet mit Projektplanungs-API-Anforderungen.
  3. 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

  1. 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.
  2. Aktualisierungsvorgänge für ressourcenzuordnungen und Projektaufgabenabhängigkeitsentitäten werden nicht unterstützt.
  3. 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.