Erstellen von benutzerdefinierten Nachrichten in Microsoft Dataverse

Microsoft Dataverse macht APIs über Nachrichten verfügbar. Sie können viele sofort einsatzbereite Nachrichten verwenden. Verwenden Sie benutzerdefinierte Nachrichten, um neue domänenspezifische Funktionen hinzuzufügen oder mehrere Nachrichtenanforderungen in einer einzigen Anforderung zu kombinieren. Beispielsweise könnten Sie in einem Supportcallcenter die Meldungen Create, Assign und Update zu einer einzigen neuen Escalate-Meldung kombinieren.

Sie können benutzerdefinierte Nachrichten auf zwei Arten definieren:

Benutzerdefinierte Nachrichtenmethode Beschreibung
Benutzerdefinierte Prozessaktion Auch als benutzerdefinierte Aktionen bezeichnet, sind diese Nachrichten seit vielen Jahren Teil von Dataverse. Benutzerdefinierte Prozessaktionen bieten eine no-code-Methode zum Definieren einer benutzerdefinierten Nachricht mithilfe des Workflow-Designers. Sie können die Logik in diesen Workflows auch mithilfe von benutzerdefinierten Workflowaktivitäten erweitern. Weitere Informationen finden Sie unter Verwenden von benutzerdefinierten Prozessaktionen mit Code.
Benutzerdefinierte API Erweitert das Konzept von benutzerdefinierten Aktionen, um Entwicklern Funktionen bereitzustellen, die der Workflow-Designer nicht begrenzt. Weitere Informationen finden Sie unter Erstellen und Verwenden von benutzerdefinierten APIs.

Warum benutzerdefinierte APIs hinzufügen?

Viele Jahre lang haben einige Entwickler benutzerdefinierte Prozessaktionen erstellt, um einfach neue Nachrichten zu erstellen, ohne logik im Workflow-Designer zu implementieren. Stattdessen registrierten sie nur Plug-Ins für die Nachricht, die von der benutzerdefinierten Aktion erstellt wurde, um alle ihre Logik zu implementieren. Benutzerdefinierte APIs machen dieses Muster zu einer erstklassigen Funktion für Entwickler, Dataverse ohne Abhängigkeit vom Workflow-Designer oder von der Technologie zu erweitern, von der es abhängt.

Vergleichen Sie Custom Process Action und Custom-API

In der folgenden Tabelle werden einige der verschiedenen Funktionen beschrieben.

Funktion Benutzerdefinierte Prozessaktion Benutzerdefinierte API Beschreibung
Deklarative Logik mit Workflow Ja Nein Für Workflowaktionen kann Logik definiert werden, ohne dass mit dem klassischen Workflow-Designer Code geschrieben werden muss.
Benutzerdefinierte APIs erfordern ein in .NET geschriebenes Plug-In, um die auf den Server angewendete Logik zu implementieren.
Bestimmte Berechtigung erforderlich Nein Ja Mit der Custom-API können Sie festlegen, dass ein Benutzer über eine bestimmte Berechtigung verfügen muss, um die Nachricht aufrufen zu können. Wenn der Benutzer diese Berechtigung aufgrund seiner Sicherheitsrollen oder seiner Teammitgliedschaft nicht hat, wird ein Fehler zurückgegeben.
Hauptvorgangslogik mit Code definieren Ja Ja Bei Custom Process Actions verarbeitet der Hauptvorgang die Workflow-Definition, die angepasste Workflow-Aktivitäten enthalten könnte. Der Code in diesen benutzerdefinierten Workflowaktivitäten wird im Hauptvorgang zusammen mit jeder anderen Logik im Workflow verarbeitet.
Wenn die benutzerdefinierte Prozessaktion keine benutzerdefinierten Workflowaktivitäten enthält, fügen Entwickler häufig Logik zur nachgelagerten Vorgangsphase in der Ereignispipeline hinzu, um die Logik zu definieren.

Bei der Custom-API verknüpft der Ersteller der Nachricht einfach seinen Plug-in Typ mit der Custom-API, um die Hauptlogik des Vorgangs bereitzustellen.
Weitere Informationen: Ereignisausführungspipeline
Blockerweiterung durch andere Plug-Ins Ja Ja Mit benutzerdefinierten Prozessaktionen setzen Sie die IsCustomProcessingStepAllowedForOtherPublishers verwaltetes Eigenschaft auf true, wenn Sie zulassen möchten, dass Plug-Ins von Drittanbietern ausgeführt werden, wenn sie in der Nachricht für Ihre benutzerdefinierte Prozessaktion registriert sind. Bei Einstellung auf false werden nur Plug-Ins von demselben Lösungsherausgeber ausgeführt, wenn ein Plug-In-Schritt für die Nachricht registriert ist.

Legen Sie für die benutzerdefinierte API die Option fest AllowedCustomProcessingStepType, um zu steuern, ob Plug-In-Schritte registriert werden dürfen oder ob nur asynchrone Plug-Ins registriert werden dürfen. Mehr Informationen: Wählen Sie einen benutzerdefinierten Verarbeitungsschritttyp aus
Nachricht als privat markieren Nein Ja Wenn Sie eine Nachricht mit einer Custom Process Action erstellen, wird sie im Endpunkt öffentlich zugänglich gemacht, sodass jeder andere sie entdecken und verwenden kann. Wenn eine andere Person von der von Ihnen erstellten Nachricht abhängig ist, wird ihr Code beschädigt, wenn Sie die Signatur der Eingabe- oder Ausgabeparameter in Zukunft entfernen, umbenennen oder ändern.

Wenn Sie nicht beabsichtigen, dass Ihre Nachricht von anderen Personen verwendet wird, können Sie sie als private Nachricht markieren. Dies zeigt an, dass Sie andere Benutzer mit der von Ihnen erstellten Nachricht nicht unterstützen und dass sie nicht in den Definitionen der verfügbaren Funktionen oder Aktionen enthalten ist, die in der Definition des Web-API-$metadata service verfügbar gemacht werden. Die Klassen für den Aufruf dieser Nachrichten werden nicht mit Tools zur Codegenerierung erzeugt, aber Sie können sie trotzdem verwenden. Weitere Informationen: Wann Sie Ihre Custom-API privat machen sollten
Lokalisierbare Namen und Beschreibungen Nein Ja Während Custom Process Actions einen Anzeigenamen für die angepasste Aktion und alle verwendeten Eingabe- und Ausgabeparameter vorsehen, sind diese Werte nicht lokalisierbar. Mit einer Custom-API können Sie lokalisierbare Namen und Beschreibungen bereitstellen. Diese lokalisierten Zeichenfolgen können dann an Steuerelemente gebunden werden, die eine Benutzeroberfläche zur Verwendung der Nachricht bereitstellen. Mehr Informationen: Lokalisierte Label-Werte
OData-Funktion erstellen Nein Ja Die Dataverse-Web-API ist ein OData-Webdienst. OData bietet zwei Vorgangstypen: Aktionen und Funktionen.
  • Eine Aktion ist ein Vorgang, der Änderungen an Daten im System vornimmt. Sie wird mit der HTTP-POST-Methode aufgerufen, und die Parameter werden im Hauptteil der Anforderung übergeben.
  • Eine Funktion ist ein Vorgang, bei dem keine Änderungen an Daten vorgenommen werden, z. B. ein Vorgang, bei dem einfach Daten abgerufen werden. Sie wird mit der HTTP-GET-Methode aufgerufen, und die Parameter werden in der URL der Anforderung übergeben

Custom Process Actions sind immer Aktionen. Custom-API bietet die Möglichkeit, angepasste Funktionen zu definieren.
Mehr Informationen: Wann eine Funktion erstellen
Erstellen einer globalen Operation, die nicht an eine Tabelle gebunden ist Ja Ja Sie können beide verwendne, um eine globale Nachricht zu definieren, die nicht an eine Tabelle gebunden ist.
Binden einer Operation an eine Tabelle Ja Ja Sie können beide verwenden, um einen Verweis auf einen bestimmten Datensatz einer Tabelle zu übergeben, indem sie ihn an eine Tabelle binden.
Binden einer Operation an eine Tabellensammlung Nein Ja Die Bindung eines Vorgangs an eine Sammlung von Tabellen lässt eine weitere Möglichkeit zu, die Signatur für die Custom-API zu definieren. Obwohl dies keine Sammlung von Entitäten als Eingabeparameter übergibt, beschränkt es den Kontext der Operation auf diesen Typ von Tabellensammlung. Verwenden Sie dies, wenn Ihr Vorgang mit einer Sammlung eines bestimmten Tabellentyps arbeitet oder Ihr Vorgang eine Sammlung dieses Typs zurückgibt.
Eine benutzerdefinierte API erstellen oder ändern, indem eine Lösung bearbeitet wird Nein Ja ISVs, die Produkte erstellen und warten, die in der Power Platform funktionieren, wenden ALM-Praktiken an, die Lösungen beinhalten. Die Daten in einer Lösung werden normalerweise in ein Quellcode-Repository eingecheckt und von einem Entwickler ausgecheckt, der Änderungen anwendet.

Ein XAML Windows Workflow Foundation-Dokument enthält die Daten, die die benutzerdefinierte Prozessaktion als Teil einer Lösung transportieren. Das Erstellen neuer oder das Bearbeiten vorhandener Workflowdefinitionen außerhalb des Workflow-Designers wird jedoch nicht unterstützt.

Benutzerdefinierte API-Definitionen sind lösungsorientierte Komponenten, die in einer Lösung über eine Reihe von Ordnern und XML-Dokumenten enthalten sind. Diese Dateien und die Dateistruktur ermöglichen den Transport der API von einer Umgebung in eine andere. Da es sich um reine Textdateien handelt, können Änderungen daran vorgenommen oder neue APIs durch Arbeiten mit diesen Dateien definiert werden. Diese Methode zur Definition angepasster APIs wird unterstützt. Weitere Informationen: Erstellen Sie eine Custom-API mit Lösungsdateien.
Vorbehaltlich einer Frist von zwei Minuten Nein Ja Ein Plug-in, das den Hauptvorgang für eine Custom-API implementiert, unterliegt dem Zeitlimit von 2 Minuten für die vollständige Ausführung.

Eine Custom Process Action ist technisch nicht auf zwei Minuten begrenzt. Wenn ein Schritt in der Workflow-Logik eine angepasste Workflow-Aktion enthält, ist dieser Teil auf zwei Minuten begrenzt. Der gesamte Workflow kann jedoch nicht unbegrenzt ausgeführt werden. Es gibt andere Beschränkungen, die dazu führen, dass lang ausgeführte Custom Process Actions fehlschlagen. Weitere Informationen: Auf zeitintensive Aktionen achten

Nächste Schritte

Verwenden Sie Custom Process Actions mit Code
Benutzerdefinierte APIs erstellen und verwenden