Benutzerdefinierte Logik

Abgeschlossen

Microsoft Dataverse bietet viele verschiedene Möglichkeiten, um benutzerdefinierte Logik auszuführen.

Für die Anwendung der benutzerdefinierten Geschäftslogik in Dataverse stehen mehrere Optionen zur Verfügung, einschließlich:

  • Geschäftsregeln
  • Klassische Workflows
  • Power Automate-Cloud-Flows
  • Geschäftsprozessflow
  • Berechnete Spalten
  • Rollupspalten
  • Plug-Ins
  • Benutzerdefinierte Workflowassemblys
  • Benutzerdefinierte Aktionen
  • Benutzerdefinierte API
  • Clientseitige Skripterstellung
  • Codekomponenten für das Power Apps Component Framework
  • Integration von Azure Service Bus und Event Hubs
  • Webhooks

Benutzerdefinierte Logik erstellen

Der Lösungsarchitekt muss entscheiden können, welche Komponente von Microsoft Power Platform verwendet wird und wo sie in der Lösung eingesetzt wird. Für diese Entscheidung werden keine Regeln vorgegeben, da jede Option ihre eigenen Vor- und Nachteile hat.

Beispielsweise können die folgenden Einschränkungen auftreten:

  • Sie können keine Power Automate-Flows über berechnete oder Rollup-Spalten auslösen.
  • Rollup-Spalten werden nur stündlich neu berechnet.
  • Geschäftsregeln können nur für eine eigene Tabelle auf die Spalten im Formular zugreifen.
  • Klassische Workflows können nicht auf Zeilen in 1:n-Beziehungen zugreifen.
  • Daten, die durch eine Geschäftsregel geändert werden, lösen kein OnChange-Ereignis aus, das mit JavaScript erstellt wurde.

Diese Liste der Einschränkungen erhebt keinen Anspruch auf Vollständigkeit.

Ein No/Low-Code oder ein Code-First-Ansatz ist nicht die richtige Taktik. Sie müssen jede Situation für sich entscheiden. Das Verständnis der Funktionen dieser Optionen ist eine Grundvoraussetzung für einen aufstrebenden Lösungsarchitekten.

Die synchrone im Vergleich zur asynchronen Verarbeitung

Benutzerdefinierte Logik kann synchron oder asynchron implementiert werden. Lösungsarchitekten müssen überlegen, ob benutzerdefinierte Logikoperationen synchron oder asynchron ausgeführt werden sollen.

Diagramm mit Unterschieden zu synchronem und asynchronem Arbeiten

Wenn die Vorgänge synchron ausgeführt werden, wird der Bildschirm des Benutzers blockiert, bis alle Vorgänge abgeschlossen sind. Die Vorgänge können Daten vor oder nach dem Speichern in der Datenbank ändern. Synchrone Aufrufe verursachen einen minimalen Overhead bei der Verarbeitung, aber alle Vorgänge in einer synchronen Transaktion sind auf insgesamt zwei Minuten begrenzt. Dieses Limit ist fest und kann nicht geändert werden. Dataverse-Plug-Ins und klassische Workflows können synchron ausgeführt werden. Geschäftsregeln werden synchron ausgeführt, wenn der Bereich auf Tabelle festgelegt ist.

Wenn die Vorgänge asynchron ausgeführt werden, wird der Bildschirm des Benutzers zurückgegeben, nachdem seine Daten in der Datenbank gespeichert wurden. Der Vorgang wird einer Warteschlange hinzugefügt und zu einem späteren Zeitpunkt ausgeführt. Dies kann je nach Arbeitslast innerhalb weniger Sekunden, einiger Minuten oder sogar Stunden erfolgen. Asynchron bedeutet, dass Benutzer ihren Bildschirm aktualisieren müssen, um die Ergebnisse anzuzeigen. Zusätzlicher Overhead entsteht beim Ausführen von asynchronen Jobs. Die Plattform erstellt Zeilen in den Tabellen „AsyncOperation“ und „WorkflowLog“. Diese Zeilen werden aktualisiert, wenn der Vorgang im Verlauf und nach Abschluss gestartet wird. Die Zeilen können so eingestellt werden, dass sie automatisch gelöscht werden. Dataverse-Plug-Ins und klassische Workflows können asynchron ausgeführt werden. Power Automate-Cloud-Flows werden asynchron ausgeführt.

Client- im Vergleich zur Server-Verarbeitung

Lösungsarchitekten müssen verstehen, wo Logik ausgeführt wird.

Canvas-App-Formeln, modellgesteuertes Formularskript, Geschäftsregeln und die Power Apps Component Framework-Logik finden in der Benutzeroberfläche statt und der Benutzer sieht das Ergebnis sofort. Diese Logik wird jedoch nur in der App erzwungen, in der die Logik implementiert ist.

Plug-Ins, Power Automate-Cloud-Flows, klassische Workflows und Geschäftsregeln (mit einem auf Tabelle festgelegten Umfang) treten nur auf, wenn die Daten von einer App, einem Flow oder einem API-Aufruf an den Server gesendet werden. Der Benutzer sieht Ergebnisse der benutzerdefinierten Servicelogik in seiner App nur beim Aktualisieren von Daten. Die Serverlogik wird erzwungen, wenn eine App, ein Flow oder eine API verwendet wird.

Microsoft Power Platform begrenzt die Anzahl der Anrufe, die getätigt werden können. Der Lösungsarchitekt muss die Lösung unter Berücksichtigung dieser Grenzen entwerfen.