Proxy für Project Operations Schedule APIs
20 Apr 2021 (Aktualisiert am: 29 Apr 2021)

Die neuen Schedule APIs für Dynamics 365 Project Operations sind seit April verfügbar. Sie geben Entwickler*innen die Möglichkeit, Erstellungs-, Aktualisierungs- und Löschvorgänge mit Planungsentitäten auszuführen.

Allerdings gibt es für die Nutzung der Schedule APIs eine Einschränkung, die in bestimmten Migrationsszenarien Probleme verursachen könnte:

Für den Zugriff auf Logiken außerhalb des CRMs müssen Sie als Anwendungsnutzer die Multi-Faktor-Authentifizierung (MFA) durchlaufen, die nicht für diesen Benutzertyp bestimmt ist. Außerdem können Anwendungsbenutzer keine Microsoft-Project-Lizenz besitzen, weshalb sie die Schedule APIs nicht nutzen können.

Doch es gibt eine Ausnahme: als Systemuser mit der erforderlichen Microsoft-Project-Lizenz, der mithilfe eines Identitätswechsels vorgibt, ein Application User zu sein. Wie das genau funktioniert, haben unsere Entwickler*innen bei proMX herausgefunden.

Wenn Sie das Problem bereits kennen: Am Ende des Artikels finden Sie den Link zur Lösung, die Sie ab sofort kostenlos bei GitHub herunterladen können.

Eine kurze Geschichte der Project-Operations-Schedule-API

Oktober 2020: Microsoft veröffentlicht die neue Projektmanagementlösung Dynamics 365 Project Operations. Für Entwickler*innen war die Möglichkeit, Projekte, Aufgaben, Abhängigkeiten, Ressourcen, Teammitglieder und Project Buckets innerhalb der Lösung mithilfe der Create-Update-Delete-APIs (CUD) zu bearbeiten, war stark eingeschränkt.

Die Updates solcher Entitäten werden von der externen Planungsengine Project for the Web (P4W) verwaltet.

Nach mehreren Anfragen entschied sich Microsoft jedoch dazu, die APIs innerhalb des Dataverse (damals Common Data Service bzw. CDS) zur Verfügung zu stellen, um CUD-Anpassungen an den zuvor erwähnten Entitäten durchführen zu können.

Eine bekannte Einschränkung

Unser Team von Entwickler*innen bei proMX arbeitete bereits während der Early-Access-Phase mit Microsofts Schedule APIs – und stieß dabei auf eine wesentliche Einschränkung: Anwendungsbenutzer und ähnliche Benutzertypen haben keine Möglichkeit, die APIs außerhalb des CRMs zu nutzen, da ihnen keine Microsoft-Project-Lizenz zugewiesen werden kann.

Aufgrund einiger Geschäftslogiken, die außerhalb des CRM liegen, z. B. Azure Functions oder Console Apps, müssen sich Anwendungsbenutzer per Microsofts Server-to-Server (S2S) authentifizieren, um Zugriff auf die Schedule APIs zu erhalten. Die S2S-Authentifizierung ist die empfohlene Authentifizierung für Apps, die auf das Dataverse zugreifen.

Ein Integrationsszenario außerhalb des CRM, das eine S2S-Authetifizierung für den Zugriff auf die Schedule API und eine Microsoft-Project-Lizenz für Application User erforderte, ist somit nicht möglich – eigentlich.

Die Lösung: Proxy for Project Operations Schedule APIs

Die gute Nachricht: Das Zugriffsproblem auf Microsofts Schedule API als Anwendungsbenutzer lässt sich lösen, indem man die Identität eines anderen Benutzers annimmt. Für das beschriebene Szenario der fehlenden Microsoft-Project-Lizenz für Anwendungsbenutzer oder ähnliche Benutzertypen, können Sie jeden Benutzer nachahmen, der über eine gültige Lizenz verfügt.

Wenn Sie die zusätzliche Funktionalität hinzufügen möchten, die es Ihnen erlaubt, die Schedule APIs für Dynamics 365 Project Operations so zu nutzen, finden Sie unsere Lösung „Proxy for Project Operations Schedule APIs“ von unserem proMX-Entwicklungsteam ab sofort zum Download auf GitHub.

Answering