Verwenden von Power Automate zum Abfragen von Dataverse-Daten außerhalb der aktuellen Umgebung

Die Power Platform bietet Hunderte von integrierten Konnektoren zum Abrufen von Daten aus internen Quellen wie SharePoint, Dataverse und Office 365 sowie externen Quellen wie Docusign, Twitter und WordPress. Diese Konnektoren können so ziemlich alles erreichen, was Sie von ihnen erwarten. Aber hin und wieder werden Sie auf ein Problem stoßen, das eine benutzerdefinierte Lösung erfordert. Wenn Sie beispielsweise bei Power Automate angemeldet sind, können Sie den Dataverse-Konnektor verwenden, um Daten abzufragen in dieser Umgebung. Diese Konnektoren sind für Datensysteme mit einer einzigen Umgebung ausreichend, aber was ist, wenn Ihr Unternehmen mehrere Umgebungen benötigt, sei es, um Organisationseinheiten oder Zwecke für jeden Datensatz aufzuteilen? Power Automate verfügt über Legacy-Konnektoren, die diese Aufgabe erfüllen, aber nicht von allen Kunden verwendet werden können.

Sie könnten API-Aufrufe von Drittanbietern verwenden, um diese Aufgabe zu erfüllen, oder Sie könnten die Plattform niemals verlassen und sie mit einem erreichen HTTP-Aktion! Das Erkunden dieses Anwendungsfalls ist besonders cool, denn wenn Sie sich mit REST-API-Aufrufen innerhalb der Plattform vertraut machen, werden Ihre Daten nahezu unbegrenzt. Die meisten Datenquellen bieten eine umfangreiche API-Dokumentation für Entwickler, um die Erweiterbarkeit ihrer Plattformen zu verbessern. Der Zugriff auf ihre APIs über Power Automate erfordert einige Kenntnisse darüber, wie man Anrufe tätigt, aber sobald Sie es verstanden haben, werden Sie in der Lage sein, Migrationen von externen Quellen zu verbessern und die allgemeine Akzeptanz der Power Platform voranzutreiben. Ich konnte keine großartigen Beispiele dafür finden End-to-End-Prozess für den Zugriff auf externe Dataverse-Daten (obwohl viele fabelhafte Ersteller von Inhalten Aspekte davon in Angriff genommen haben), wollte ich sie in diesem Beitrag katalogisieren. Dies ist eine lange Lektüre für Interessierte. Aber der Zweck hier ist zu zeigen, wie Sie Power Automate verwenden können, um den Zugriff auf Ihre Daten unabhängig von ihrem Speicherort auf die gesamte Power Platform zu erweitern, die in Ihren Apps, Produkten und Abläufen verwendet werden kann.

Unsere Aufgabe

Wir möchten sehen, welche Kundenkonten in der aktuellen Umgebung und einer zweiten Umgebung vorhanden sind. Wir können diese finden, indem wir uns die Tabellen in jeder Umgebung ansehen:

Mithilfe des Dataverse-Konnektors in Power Automate können Sie alle Konten in Ihrer aktuellen Umgebung finden. Hier hänge ich jedes Konto an eine Array-Variable an:

Ohne einen Legacy-Konnektor für Dataverse zum Abfragen der zweiten Umgebung zu verwenden, können wir bei dieser Aufgabe nicht weitermachen.

Zugriff auf unsere Daten

Microsoft bietet hier eine umfangreiche Dokumentation zum Zugriff auf Dataverse-Daten mithilfe von REST-API-Aufrufen mit Beispielen. Beim Erstellen von Datenabfragen können Sie auswählen, welche Spalten Sie zurückgeben möchten, wie sie sortiert werden, die Menge an Daten, die Sie zurückgeben möchten, und viele andere Optionen, um genau anzugeben, was Sie benötigen. Also das ist großartig! Lassen Sie uns unsere Daten mit dem folgenden HTTP-Aufruf abrufen:

https://{Ihre-Organisations-URL}/api/data/v9.2/accounts?$select=name

Wenn Sie das versuchen, erhalten Sie einen 401-Fehler, was Sie bedeutet keine Berechtigungen für diese Daten. Dies liegt daran, dass wir kein Zugriffstoken mit unseren Anmeldeinformationen bereitgestellt haben, was eine häufige Notwendigkeit ist, die Sie bei vielen API-Aufrufen finden werden, die Sie zu tätigen versuchen. Für unseren Geschäftsfall wären dies die Schritte zum Sammeln dieses Zugriffstokens:

1. Wir müssen unsere Dataverse CRM-Anwendung in Azure Active Directory registrieren, um ein Client-Token für diese Umgebung zu generieren. Zuerst besuchen wir portal.azure.com, navigieren zur Active Directory-Startseite und klicken im linken Bereich auf „App-Registrierungen“. Klicken Sie in den App-Registrierungen im oberen Menüband auf „+ Neue Registrierung“:

2. Wir geben unserer Anwendung einen Namen, wählen die unterstützten Kontotypen aus und geben Ihre Organisations-URL ein (zu finden im Power Platform Admin Center für jede Umgebung, die als Ihre CRM-URL aufgeführt ist):

3. Klicken Sie in der Anwendungsregistrierung im linken Bereich auf „API-Berechtigungen“ und dann auf „+ Berechtigung hinzufügen“. Von dort wählen wir „Dynamics CRM“ mit aktivierten delegierten Berechtigungen aus. Dadurch können wir Identitätswechsel in einem API-Aufruf für Anmeldeinformationen verwenden:

4. Als Nächstes klicken wir im linken Bereich auf „Zertifikate und Geheimnisse“ und dann auf „+ Neues Client-Geheimnis“ mit dem Datumsbereich, für den das Token aktiv sein soll. Kopieren Sie den Tokenwert (keine geheime ID) bevor Sie die Seite verlassen und irgendwo lokal kopieren:

5. Um unsere Arbeit in Azure AD abzuschließen, klicken Sie im linken Bereich auf „Übersicht“ und kopieren Sie die Anwendungs-ID (Client) und die Verzeichnis-ID (Mandant) an dieselbe Stelle, an die Sie Ihren Token-Wert kopiert haben:

6. Gehen Sie zu admin.powerplatform.microsoft.com und suchen Sie die Umgebung, auf die wir versuchen, zuzugreifen, aus Ihrer Umgebungsliste. Wir müssen der Umgebung mitteilen, dass sie dem gerade erstellten Zertifikat vertrauen soll. Auf der Startseite Ihrer Umgebung sehen Sie „S2S-Apps“ auf der rechten Seite des Bildschirms. Klicken Sie unten auf “Alle anzeigen”.

7. Klicken Sie im oberen Menüband auf „+ Neuer App-Benutzer“. Wählen Sie für App eine beliebige Anwendung aus, die Sie in dieser Umgebung erstellt haben und die mit Dataverse-Daten arbeitet (erstellen Sie schnell eine modellgesteuerte App, falls Sie noch keine haben), und wählen Sie „Systemadministrator“ für die Sicherheitsrolle aus. Nachdem Sie diesen neuen App-Benutzer erstellt haben, sollte die App-ID mit der App-ID übereinstimmen, die Sie aus Azure AD kopiert haben:

Wir haben jetzt unsere Dataverse-Umgebungsdaten in Azure AD registriert und dann diesen App-Registrierungszugriff im Power Platform Admin Center bereitgestellt. Jetzt können wir Daten abfragen!

Aufbau des Flusses

In Power Automate müssen wir einen POST-REST-API-Aufruf verwenden, um unser Benutzer-Bearer-Token zu generieren. In Azure AD sehen Sie das https://login.microsoftonline.com/{tenant_id}/oauth2/token ist eine Möglichkeit, Anmeldeinformationen für diese registrierte Anwendung zu generieren. Hier sind die HTTP-POST-Anforderungsdetails (geschweifte Klammern, die durch die IDs ersetzt werden, die Sie lokal gespeichert haben):

URI: https://login.microsoftonline.com/{tenant_id}/oauth2/token

Header: Content-Type = application/x-www-form-urlencoded

Körper:

grant_type=client_credentials&
client_id={application_id}&
client_secret={client_secret}&
resource={Ihre_Organisations-URL}

Wenn Sie diesen POST-Aufruf tätigen, erhalten Sie im Text der Antwort ein Zugriffstoken. Mit einer „Verfassen“-Aktion in Power Automate können wir diese Antwort erfassen, um sie im nächsten HTTP-Aufruf zu verwenden. Für mich war dieser Ausdruck Ausgaben(‘HTTP_-_Post_Access_Token’).body.access_token:

Und bei schlucken, Wir können den HTTP GET-Aufruf durchführen, um die gewünschten Daten abzufragen, indem wir diese Anforderungsdetails verwenden:

URI: https://{your_organization_url}/api/data/v9.2/accounts?$select=name

Überschriften:

Inhaltstyp = application/json
Autorisierung = Träger {Verfassen – Zugriffstokenausgaben}
OData-MaxVersion = 4.0
OData-Version = 4.0

Von dort aus können Sie die Aktion „Parse JSON“ verwenden, um Daten in der Antwort zu parsen, und dann Ihr EnvironmentAccounts-Array mit diesem JSON-Objekt vergleichen, um zu sehen, wo sich Ihre Umgebungen überschneiden. Es gibt eine Reihe von Dingen, die Sie tun könnten, um diesen Prozess zu verbessern, z. B. die Verwendung von nachverfolgten Eigenschaften in einer Compose-Aktion, um alle IDs auszublenden, die Sie in diesem Flow verwenden (im Allgemeinen wichtig für API-Aufrufe, wenn Sie Ihre IDs nicht einfach anzeigen möchten ):

Für diejenigen, die sich für diese Schritte und die unzähligen anderen Möglichkeiten interessieren, die Ihnen zur Verfügung stehen, können Sie jederzeit auf den Beitrag antworten oder mich auf LinkedIn finden!

Schlussfolgerungen

Die Erweiterbarkeit der Power Platform ist eines der Hauptverkaufsargumente für die Servicesuite. Ganz gleich, wo sich Ihre Daten derzeit befinden, es gibt immer eine Möglichkeit, sie für Abfragen und Migrationen zu finden. Ich mag dieses Beispiel, weil es viele der üblichen Probleme zeigt, auf die Sie beim Umgang mit HTTP-Anforderungen stoßen werden, z. B. das Delegieren des Benutzerzugriffs auf die Daten, das Erstellen benutzerdefinierter Abfragen und die allgemeine Bildung des Hauptteils in POST-Anforderungen und Headern in GET Anfragen. Der Zugriff auf diese Daten ist für den Datenschutz in Unternehmen von entscheidender Bedeutung, aber alle (einschließlich der hervorragenden Dokumentationswebsite von Microsoft) bieten Ihnen die Tools, um das zu finden, was Sie brauchen, und die Power Platform gibt Ihnen Tools, um mit diesen Daten zu arbeiten und erstaunliche Dinge bauen.

.

Author: admin

Leave a Reply

Your email address will not be published.