Herstellen einer Verbindung mit Microsoft Dataverse aus Workflows in Azure Logic Apps
Gilt für: Azure Logic Apps (Verbrauch + Standard)
Wichtig
Am 30. August 2022 wurden die Connectorvorgänge für Common Data Service 2.0, auch bekannt als Microsoft Dataverse (Legacy), zum aktuellen Microsoft Dataverse-Connector migriert. Legacyvorgänge tragen die Bezeichnung „Legacy“, während aktuelle Vorgänge die Bezeichnung „Preview“ (Vorschau) tragen. Sie können den aktuellen Dataverse-Connector in allen vorhandenen oder neuen Logik-App-Workflows verwenden. Zur Gewährleistung der Abwärtskompatibilität funktionieren vorhandene Workflows weiterhin mit dem Dataverse-Legacy-Connector. Überprüfen Sie diese Workflows jedoch, und aktualisieren Sie sie umgehend.
Seit Oktober 2023 ist die Legacyversion für neue Workflows nicht mehr verfügbar. Vorhandene Workflows funktionieren weiterhin, aber Sie müssen die aktuellen Dataverse-Connectorvorgänge für neue Workflows verwenden. Es wird eine Zeitachse für das Herunterfahren der älteren Aktionen und Trigger angekündigt. Weitere Informationen finden Sie unter Microsoft Dataverse (Legacy)-Connector für Azure Logic Apps wird eingestellt und durch einen anderen Connector ersetzt.
Um automatisierte Workflows zu erstellen und auszuführen, die Zeilen in Ihrer Microsoft Dataverse-Datenbankerstellen und verwalten, können Sie Azure Logic Apps und den Microsoft Dataverse-Connector verwenden. Diese Workflows können Zeilen erstellen und aktualisieren sowie andere Vorgänge ausführen. Sie können auch Informationen aus Ihrer Dataverse-Datenbank abrufen und die Ausgabe für andere Aktionen zur Verwendung in Ihrer Logik-App bereitstellen. Wenn beispielsweise eine Zeile in der Dataverse-Datenbank hinzugefügt, aktualisiert oder gelöscht wird, können Sie mithilfe des Outlook-Connectors von Office 365 eine E-Mail senden.
In diesem Leitfaden wird gezeigt, wie Sie einen Workflow erstellen, der eine Aufgabenzeile erstellt, wenn eine neue Leadzeile erstellt wird.
Referenz zu Konnektoren
Technische Informationen, die auf der Swagger-Beschreibung des Connectors basieren (z. B. Vorgänge, Grenzwerte und andere Details), finden Sie auf der Referenzseite des verwalteten Connectors.
Voraussetzungen
Ein Azure-Konto und ein Azure-Abonnement. Wenn Sie nicht über ein Azure-Abonnement verfügen, können Sie sich für ein kostenloses Azure-Konto registrieren.
Eine Dataverse-Datendienstumgebung, bei der es sich um einen Bereich handelt, in dem Ihre Organisation Geschäftsdaten in einer Dataverse-Datenbank speichert, verwaltet und freigibt. Weitere Informationen finden Sie in den folgenden Ressourcen:
Grundlegende Kenntnisse über das Erstellen von Logik-App-Workflows in den Tarifen „Verbrauch“ oder „Standard“ und die Logik-App, von der aus Sie auf die Zeilen in Ihrer Dataverse-Datenbank zugreifen möchten. Um einen Dataverse-Trigger zu verwenden, müssen Sie mit einem leeren Workflow beginnen. Weitere Informationen finden Sie in den folgenden Ressourcen:
Hinzufügen eines Dataverse-Triggers
Wenn Sie einen Trigger oder eine Aktion hinzufügen, der/die eine Verbindung mit einem Dienst oder System herstellt, und Sie keine bestehende oder aktive Verbindung haben, werden Sie von Azure Logic Apps aufgefordert, die Verbindungsinformationen anzugeben, die je nach Verbindungstyp variieren, z. B.:
- Ihre Kontoanmeldeinformationen.
- Ein für die Verbindung zu verwendender Name.
- Der Name des Servers oder des Systems
- Der zu verwendende Authentifizierungstyp
- Eine Verbindungszeichenfolge.
In diesem Beispiel wird der Dataverse-Trigger verwendet, der Ihren Workflow startet, wenn eine Zeile hinzugefügt, aktualisiert oder gelöscht wird.
Hinweis
Der Dataverse-Connector verfügt über vorgangsspezifische Parameter sowie datenbankspezifische Parameter. Wenn Sie beispielsweise eine Tabelle auswählen, variieren die für diese Tabelle verfügbaren Parameter und unterscheiden sich von denen anderer Tabellen.
Öffnen Sie im Azure-Portal Ihre Standard-Logik-App und einen leeren Workflow im Designer.
Führen Sie im Designer die folgenden allgemeinen Schritte aus, um den Microsoft Dataverse-Trigger namens Wenn eine Zeile hinzugefügt, geändert oder gelöscht wird hinzuzufügen.
Wenn Sie dazu aufgefordert werden, melden Sie sich bei Ihrer Dataverse-Umgebung oder Datenbank an.
Geben Sie im Triggerinformationsfeld die erforderlichen Werte an.
Informationen zum Beispieltrigger finden Sie unter Wenn eine Zeile hinzugefügt, geändert oder gelöscht wird.
Wenn Sie fertig sind, speichern Sie Ihren Logik-App-Workflow. Wählen Sie auf der Symbolleiste des Designers Speichern aus.
Fügen Sie nun mindestens eine Aktion für Ihren Workflow hinzu, die ausgeführt werden soll, wenn der Trigger ausgelöst wird. Sie können beispielsweise eine Dataverse-Aktion oder eine Aktion hinzufügen, die E-Mails auf Grundlage der Ausgaben des Triggers sendet.
Hinzufügen einer Dataverse-Aktion
Wenn Sie einen Trigger oder eine Aktion hinzufügen, der/die eine Verbindung mit einem Dienst oder System herstellt, und Sie keine bestehende oder aktive Verbindung haben, werden Sie von Azure Logic Apps aufgefordert, die Verbindungsinformationen anzugeben, die je nach Verbindungstyp variieren, z. B.:
- Ihre Kontoanmeldeinformationen.
- Ein für die Verbindung zu verwendender Name.
- Der Name des Servers oder des Systems
- Der zu verwendende Authentifizierungstyp
- Eine Verbindungszeichenfolge.
In diesem Beispiel wird die Dataverse-Aktion verwendet, die Ihrer Datenbank eine neue Zeile hinzufügt.
Hinweis
Der Dataverse-Connector verfügt über vorgangsspezifische Parameter sowie datenbankspezifische Parameter. Wenn Sie beispielsweise eine Tabelle auswählen, variieren die für diese Tabelle verfügbaren Parameter und unterscheiden sich von denen anderer Tabellen.
Öffnen Sie im Azure-Portal Ihre Standard-Logik-App und deren Workflow im Workflow-Designer.
Wenn Sie dazu aufgefordert werden, melden Sie sich bei Ihrer Dataverse-Umgebung oder Datenbank an.
Geben Sie im Aktionsinformationsfeld die erforderlichen Werte an.
Eine Beispielaktion finden Sie unter Hinzufügen einer neuen Zeile.
Wenn Sie fertig sind, speichern Sie Ihren Logik-App-Workflow. Wählen Sie auf der Symbolleiste des Designers Speichern aus.
Fahren Sie mit dem Hinzufügen weiterer Aktionen fort, wenn Sie möchten.
Testen Ihres Workflows
Führen Sie die folgenden Schritte aus, um den Workflow zu testen und auszulösen:
Wählen Sie im Menü „Workflow“ die Option Übersicht aus.
Wählen Sie auf der Symbolleiste Übersicht die Option Ausführen>Ausführen aus.
Reproduzieren Sie die Bedingungen, die der Trigger erfordert, damit Ihr Workflow ausgeführt werden kann.
Zurückgeben von Zeilen auf Grundlage eines Filters
Für Aktionen, die Zeilen zurückgeben, z. B. die Aktion Zeilen auflisten, können Sie eine ODATA-Abfrage verwenden, die Zeilen auf Grundlage des angegebenen Filters zurückgibt. Sie können beispielsweise die Aktion so einrichten, dass sie nur Zeilen für aktive Konten zurückzugeben. Weitere Informationen zur Beispielaktion finden Sie unter Zeilen auflisten.
Öffnen Sie im Designer in der Aktion die Liste Erweiterten Parameter hinzufügen und wählen Sie die Eigenschaft Zeilen filtern aus.
Geben Sie in der Eigenschaft Zeilen filtern, die jetzt in der Aktion angezeigt wird, einen ODATA-Abfrageausdruck ein, z. B.:
statuscode eq 1
Weitere Informationen zu $filter
-Systemabfrageoptionen finden Sie unter Abfragen von Daten mithilfe der Web-API – Filterergebnisse.
Zurückgeben von Zeilen auf Grundlage einer Sortierreihenfolge
Für Aktionen, die Zeilen zurückgeben, z. B. die Aktion Zeilen auflisten, können Sie eine ODATA-Abfrage verwenden, die Zeilen in einer bestimmten Reihenfolge zurückgibt, die basierend auf den von der Aktion zurückgegebenen Zeilen unterschiedlich ist. Sie können beispielsweise die Aktion so einrichten, dass Zeilen nach Kontonamen sortiert zurückgegeben werden. Weitere Informationen zur Beispielaktion finden Sie unter Zeilen auflisten.
Öffnen Sie im Designer in der Aktion die Liste Erweiterten Parameter hinzufügen und wählen Sie die Eigenschaft Sortieren nach aus.
Geben Sie in der nun in der Aktion angezeigten Eigenschaft Sortieren nach den Spaltennamen ein, der zum Sortieren verwendet werden soll, z. B. Name:
Weitere Informationen zu $orderby
-Systemabfrageoptionen finden Sie unter Abfragen von Daten mithilfe der Web-API – Sortieren nach.
Felddatentypen
In einem Trigger oder einer Aktion muss der Datentyp eines Feldwerts dem erforderlichen Datentyp des Felds entsprechen. Diese Anforderung gilt sowohl, wenn Sie den Wert manuell eingeben, als auch, wenn Sie den Wert aus der dynamischen Inhaltsliste auswählen.
Hinweis
Der Dataverse-Connector verfügt über vorgangsspezifische Parameter sowie datenbankspezifische Parameter. Wenn Sie beispielsweise eine Tabelle auswählen, variieren die für diese Tabelle verfügbaren Parameter und unterscheiden sich von denen anderer Tabellen.
Nehmen wir beispielsweise an, Sie verfügen über eine Tabelle namens Tasks (Aufgaben). Diese Tabelle enthält Felder, die nur für diese Tabelle gelten, während andere Tabellen eigene Felder besitzen. Für die Beispieltabelle Tasks beschreibt die folgende Tabelle einige Beispielfeldtypen und die Datentypen, die diese Felder für ihre Werte erfordern.
Feld | Datentyp | Beschreibung |
---|---|---|
Textfeld | Einzelne Textzeile | Erfordert entweder eine einzelne Textzeile oder dynamischen Inhalt, der den Textdatentyp aufweist, z. B. die folgenden Eigenschaften: - Beschreibung - Kategorie |
Ganzzahliges Feld | Ganze Zahl | Erfordert entweder einen Integerwert oder dynamischen Inhalt, der den Integerdatentyp aufweist, z. B. die folgenden Eigenschaften: - Percent Complete (Prozent abgeschlossen) - Dauer |
Datum (Feld) | Datum und Uhrzeit | Erfordert entweder ein Datum im Format MM/TT/JJJ oder dynamischen Inhalt, der den Datumsdatentyp aufweist, z. B. die folgenden Eigenschaften: - Erstellungszeitpunkt - Startdatum - Actual Start (Tatsächlicher Start) - Actual End (Tatsächliches Ende) - Fälligkeitsdatum |
Feld, das auf eine andere Entitätszeile verweist. | Primary key (Primärschlüssel) | Erfordert sowohl eine Zeilen-ID, z. B. eine GUID, als auch einen Nachschlagetyp. Dies bedeutet, dass Werte aus der Liste dynamischer Inhalte nicht funktionieren, z. B. die folgenden Eigenschaften: - Owner (Besitzer): Muss eine gültige Benutzer-ID oder eine Zeilen-ID sein. - Owner Type (Besitzertyp): Muss ein Nachschlagetyp sein, z. B. systemusers oder teams . - Regarding (Bezüglich): Muss eine gültige Zeilen-ID sein, beispielsweise eine Konto- oder Kontaktzeilen-ID sein. - Regarding Type (Typ für „Bezüglich“): Muss ein Nachschlagetyp sein, z. B. accounts oder contacts . - Customer (Kunde): Muss eine gültige Zeilen-ID sein, beispielsweise eine Konto- oder Kontaktzeilen-ID sein. - Customer Type (Kundentyp): Muss ein Nachschlagetyp sein, z. B. accounts oder contacts . |
Angenommen, Sie verwenden für die Beispieltabelle Tasks die Aktion Neue Zeile hinzufügen, um eine neue Zeile zu erstellen, die anderen Entitätszeilen zugeordnet ist, insbesondere einer Benutzerzeile und einer Kontozeile. In dieser Aktion müssen Sie also die IDs und Nachschlagetypen für diese Entitätszeilen angeben, indem sie Werte verwendet, die den erwarteten Datentypen für die relevanten Eigenschaften entsprechen.
Basierend auf der Eigenschaft Owner (Besitzer), die eine Benutzer-ID angibt, und der Eigenschaft Owner Type (Besitzertyp), die den
systemusers
-Nachschlagetyp angibt, ordnet die Aktion die neue Zeile einem bestimmten Benutzer zu.Basierend auf der Eigenschaft Regarding (Bezüglich), die eine Zeilen-ID angibt, und der Eigenschaft Regarding Type (Typ für „Bezüglich“), die den
accounts
-Nachschlagetyp angibt, ordnet die Aktion die neue Zeile einem bestimmten Konto zu.
Problembehandlung
Aufrufe aus mehreren Umgebungen
Der Dataverse-Connector speichert Informationen zu den Logik-App-Workflows, die Benachrichtigungen über Datenbankentitätsänderungen abrufen und erfordern, indem die callbackregistrations
-Entität in Ihrer Dataverse-Datenbank verwendet wird. Wenn Sie eine Dataverse-Organisation kopieren, werden auch alle Webhooks kopiert. Wenn Sie Ihre Organisation kopieren, bevor Sie Workflows deaktivieren, die Ihrer Organisation zugeordnet sind, verweisen alle kopierten Webhooks ebenfalls auf dieselben Logik-App-Workflows, die dann Benachrichtigungen von mehreren Organisationen erhalten.
Um unerwünschte Benachrichtigungen zu beenden, löschen Sie die callbackregistrations
-Entität aus der Organisation, die diese Benachrichtigungen sendet. Befolgen Sie dazu die folgenden Schritte:
Ermitteln Sie die Dataverse-Organisation, von der Sie Benachrichtigungen entfernen möchten, und melden Sie sich bei dieser an.
Suchen Sie im Chrome-Browser nach der Rückrufregistrierung, die Sie löschen möchten.
Überprüfen Sie die generische Liste für alle Rückrufregistrierungen unter folgendem OData-URI, damit Sie die Daten in der
callbackregistrations
-Entität anzeigen können:https://{organization-name}.crm{instance-number}.dynamics.com/api/data/v9.0/callbackregistrations
:Hinweis
Wenn keine Werte zurückgegeben werden, verfügen Sie möglicherweise nicht über die Berechtigungen zum Anzeigen dieses Entitätstyps, oder Sie sind eventuell nicht bei der richtigen Organisation angemeldet.
Filtern Sie nach dem logischen Namen der auslösenden Entität (
entityname
) und dem Benachrichtigungsereignis, das Ihrem Logik-App-Workflow entspricht (Nachricht). Jeder Ereignistyp ist dem Nachrichteninteger wie folgt zugeordnet:Ereignistyp Nachrichteninteger Erstellen 1 Löschen 2 Update 3 CreateOrUpdate 4 CreateOrDelete 5 UpdateOrDelete 6 CreateOrUpdateOrDelete 7 Das folgende Beispiel zeigt, wie Sie nach
Create
-Benachrichtigungen für eine Entität mit dem Namennov_validation
filtern können, indem Sie den folgenden OData-URI einer Beispielorganisation verwenden:https://fabrikam-preprod.crm1.dynamics.com/api/data/v9.0/callbackregistrations?$filter=entityname eq 'nov_validation' and message eq 1
Hinweis
Wenn für dieselbe Entität oder dasselbe Ereignis mehrere Trigger vorhanden sind, können Sie die Liste filtern, indem Sie zusätzliche Filter wie die Attribute
createdon
und_owninguser_value
verwenden. Der Benutzername des Besitzers wird unter/api/data/v9.0/systemusers({id})
angezeigt.Nachdem Sie die ID der zu löschenden Rückrufregistrierung gefunden haben, führen Sie die folgenden Schritte aus:
Öffnen Sie in Ihrem Chrome-Browser die Chrome-Entwicklertools (Tastatur: F12).
Wählen Sie im Fenster oben die Registerkarte Konsole aus.
Geben Sie in der Eingabeaufforderung den folgenden Befehl ein. Dieser sendet eine Anforderung zum Löschen der angegebenen Rückrufregistrierung:
fetch('http://{organization-name}.crm{instance-number}.dynamics.com/api/data/v9.0/callbackregistrations({ID-to-delete})', { method: 'DELETE'})
Wichtig
Stellen Sie sicher, dass Sie die Anforderung von einer Nicht-UCI-Seite (Unified Client Interface) ausgeht, z. B. von der OData- oder API-Antwortseite selbst. Andernfalls führt die Logik in der Datei „app.js“ möglicherweise zu einem Konflikt mit diesem Vorgang.
Überprüfen Sie die Liste der Rückrufregistrierungen, um sicherzustellen, dass die Rückrufregistrierung nicht mehr vorhanden ist.
Duplizierte Entität „callbackregistrations“
Unter bestimmten Bedingungen, wie der Instanzneuzuweisung oder dem Anwendungsneustart, startet der Microsoft Dataverse-Trigger in Standardlogik-App-Workflows eine duplizierte callbackregistrations
-Entität in Ihrer Dataverse-Datenbank. Wenn Sie einen Standardworkflow bearbeiten, der mit einem Dataverse-Trigger beginnt, überprüfen Sie, ob diese callbackregistrations
-Entität dupliziert ist. Wenn das Duplikat vorhanden ist, löschen Sie die duplizierte callbackregistrations
-Entität manuell.