Diese Dokumentation wurde automatisch von KI übersetzt.
Alle Datenänderungen, die Benutzer im System vornehmen, erfolgen typischerweise durch eine Aktion, meist in Form eines Klicks auf eine Schaltfläche. Diese Schaltfläche kann ein Absende-Button in einem Formular oder ein Aktions-Button in einem Datenblock sein. Nach-Aktions-Ereignisse werden verwendet, um diesen Schaltflächen-Aktionen entsprechende Workflows zuzuordnen. Dadurch wird ein spezifischer Prozess ausgelöst, nachdem die Benutzeraktion erfolgreich abgeschlossen wurde.
Wenn Sie beispielsweise Daten hinzufügen oder aktualisieren, können Sie über die Option „Workflow binden“ für eine Schaltfläche einen Workflow konfigurieren. Nach Abschluss der Aktion wird der gebundene Workflow ausgelöst.
Auf Implementierungsebene können auch HTTP-API-Aufrufe an NocoBase definierte Nach-Aktions-Ereignisse auslösen, da die Verarbeitung von Nach-Aktions-Ereignissen auf der Middleware-Ebene (Koa-Middleware) stattfindet.
Dies ist ein integriertes Plugin, eine Installation ist nicht erforderlich.
Wählen Sie beim Erstellen eines Workflows als Typ „Nach-Aktions-Ereignis“ aus:

Für Nach-Aktions-Ereignisse können Sie beim Erstellen auch den Ausführungsmodus „Synchron“ oder „Asynchron“ wählen:

Wenn der Prozess sofort nach der Benutzeraktion ausgeführt und zurückgegeben werden soll, verwenden Sie den synchronen Modus; andernfalls ist der asynchrone Modus die Standardeinstellung. Im asynchronen Modus ist die Aktion sofort abgeschlossen, nachdem der Workflow ausgelöst wurde, und der Workflow wird nacheinander im Hintergrund der Anwendung als Warteschlange ausgeführt.
Betreten Sie den Workflow-Canvas, klicken Sie auf den Trigger, um das Konfigurations-Popup zu öffnen, und wählen Sie zuerst die zu bindende Sammlung aus:

Wählen Sie dann den Trigger-Modus aus, es gibt zwei Optionen: lokalen Modus und globalen Modus.

Dabei gilt:
Im lokalen Modus werden derzeit folgende Aktions-Schaltflächen zur Zuweisung unterstützt:
Wenn Sie den globalen Modus gewählt haben, müssen Sie auch den Aktionstyp auswählen. Derzeit werden „Daten erstellen“ und „Daten aktualisieren“ unterstützt. Beide Aktionen lösen den Workflow nach erfolgreichem Abschluss aus.
Wenn Sie die verknüpften Daten der Trigger-Daten in nachfolgenden Prozessen verwenden möchten, können Sie die Beziehungsfelder auswählen, die vorab geladen werden sollen:

Nach dem Auslösen können Sie diese verknüpften Daten direkt im Prozess verwenden.
Für Aktionen im lokalen Trigger-Modus müssen Sie nach der Workflow-Konfiguration zur Benutzeroberfläche zurückkehren und den Workflow der Formular-Aktions-Schaltfläche des entsprechenden Datenblocks zuweisen.
Workflows, die für die Schaltfläche „Absenden“ (einschließlich der Schaltfläche „Daten speichern“) konfiguriert sind, werden ausgelöst, nachdem der Benutzer das entsprechende Formular abgesendet und die Datenaktion abgeschlossen hat.

Wählen Sie im Menü der Schaltflächenkonfiguration „Workflow zuweisen“, um das Zuweisungs-Konfigurations-Popup zu öffnen. Im Popup können Sie beliebig viele Workflows konfigurieren, die ausgelöst werden sollen. Wenn keiner konfiguriert ist, bedeutet dies, dass kein Trigger erforderlich ist. Für jeden Workflow müssen Sie zuerst festlegen, ob die Trigger-Daten die Daten des gesamten Formulars oder die Daten eines bestimmten Beziehungsfeldes im Formular sind. Anschließend wählen Sie basierend auf der Sammlung, die dem ausgewählten Datenmodell entspricht, den Formular-Workflow aus, der für dieses Sammlungsmodell konfiguriert wurde.


Der Workflow muss aktiviert sein, bevor er in der obigen Oberfläche ausgewählt werden kann.
Hier demonstrieren wir dies anhand einer Hinzufügen-Aktion.
Stellen Sie sich ein Szenario für einen „Spesenantrag“ vor. Nachdem ein Mitarbeiter eine Spesenabrechnung eingereicht hat, müssen wir eine automatische Prüfung des Betrags und eine manuelle Prüfung für Beträge durchführen, die das Limit überschreiten. Nur erfolgreich geprüfte Anträge werden genehmigt und anschließend zur Bearbeitung an die Finanzabteilung weitergeleitet.
Zuerst erstellen wir eine Sammlung „Spesenabrechnung“ mit den folgenden Feldern:
Danach erstellen wir einen Workflow vom Typ „Nach-Aktions-Ereignis“ und konfigurieren das Sammlungsmodell im Trigger als Sammlung „Spesenabrechnung“:

Nachdem der Workflow aktiviert wurde, werden wir die spezifischen Verarbeitungsknoten des Prozesses später konfigurieren.
Anschließend erstellen wir auf der Oberfläche einen Tabellenblock für die Sammlung „Spesenabrechnung“, fügen der Symbolleiste eine Schaltfläche „Hinzufügen“ hinzu und konfigurieren die entsprechenden Formularfelder. In den Konfigurationsoptionen der Formular-Aktions-Schaltfläche „Absenden“ öffnen wir den Konfigurationsdialog „Workflow zuweisen“, wählen die gesamten Formulardaten als Kontext und unseren zuvor erstellten Workflow aus:

Nachdem die Formular-Konfiguration abgeschlossen ist, kehren wir zur Logik-Orchestrierung des Workflows zurück. Wenn der Betrag beispielsweise 500 Euro übersteigt, ist eine manuelle Prüfung durch einen Administrator erforderlich; andernfalls wird er direkt genehmigt. Erst nach erfolgreicher Prüfung wird ein Spesenabrechnungsdatensatz erstellt und anschließend von der Finanzabteilung weiterbearbeitet (ausgelassen).

Wenn wir die weitere Bearbeitung durch die Finanzabteilung außer Acht lassen, ist die Konfiguration des Spesenantragsprozesses nun abgeschlossen. Wenn ein Mitarbeiter einen Spesenantrag ausfüllt und absendet, wird der entsprechende Workflow ausgelöst. Beträgt der Spesenbetrag weniger als 500 Euro, wird automatisch ein Datensatz erstellt und die weitere Bearbeitung durch die Finanzabteilung abgewartet. Andernfalls wird der Antrag von einem Vorgesetzten geprüft, und nach Genehmigung wird ebenfalls ein Datensatz erstellt und an die Finanzabteilung übergeben.
Der Prozess in diesem Beispiel kann auch auf einer regulären Schaltfläche „Absenden“ konfiguriert werden. Sie können je nach spezifischem Geschäftsszenario entscheiden, ob zuerst ein Datensatz erstellt werden soll, bevor nachfolgende Prozesse ausgeführt werden.
Das Auslösen von Nach-Aktions-Ereignissen ist nicht auf Operationen der Benutzeroberfläche beschränkt, sondern kann auch über HTTP-API-Aufrufe erfolgen.
Beim Auslösen eines Nach-Aktions-Ereignisses über einen HTTP-API-Aufruf müssen Sie auch den Aktivierungsstatus des Workflows und die Übereinstimmung der Sammlungs-Konfiguration beachten, da der Aufruf sonst möglicherweise nicht erfolgreich ist oder ein Fehler auftritt.
Für Workflows, die lokal an eine Aktions-Schaltfläche gebunden sind, können Sie diese wie folgt aufrufen (am Beispiel der Erstellen-Schaltfläche der posts-Sammlung):
Dabei ist der URL-Parameter triggerWorkflows der Schlüssel des Workflows, wobei mehrere Workflows durch Kommas getrennt werden. Dieser Schlüssel kann durch Bewegen der Maus über den Workflow-Namen oben im Workflow-Canvas abgerufen werden:

Nach erfolgreichem Aufruf wird das Nach-Aktions-Ereignis der entsprechenden posts-Sammlung ausgelöst.
Da externe Aufrufe ebenfalls auf der Benutzeridentität basieren müssen, ist bei HTTP-API-Aufrufen, genau wie bei Anfragen, die von der normalen Oberfläche gesendet werden, die Angabe von Authentifizierungsinformationen erforderlich. Dazu gehören der Authorization-Anfrage-Header oder der token-Parameter (der beim Login erhaltene Token) sowie der X-Role-Anfrage-Header (der aktuelle Rollenname des Benutzers).
Wenn Sie ein Ereignis für Eins-zu-Eins-Beziehungsdaten (Eins-zu-Viele wird derzeit nicht unterstützt) in dieser Aktion auslösen müssen, können Sie ! im Parameter verwenden, um die Trigger-Daten des Beziehungsfeldes anzugeben:
Nach erfolgreichem Aufruf wird das Nach-Aktions-Ereignis der entsprechenden categories-Sammlung ausgelöst.
Wenn das Ereignis im globalen Modus konfiguriert ist, müssen Sie den URL-Parameter triggerWorkflows nicht verwenden, um den entsprechenden Workflow anzugeben. Ein direkter Aufruf der entsprechenden Sammlungsaktion löst das Ereignis aus.
Wie in der Abbildung unten gezeigt:

Nach-Aktions-Ereignisse und Sammlungsereignisse ähneln sich darin, dass beides Prozesse sind, die nach Datenänderungen ausgelöst werden. Ihre Implementierungsebenen unterscheiden sich jedoch: Nach-Aktions-Ereignisse beziehen sich auf die API-Ebene, während Sammlungsereignisse auf Datenänderungen in der Sammlung abzielen.
Sammlungsereignisse liegen näher an der zugrunde liegenden Systemebene. In einigen Fällen kann eine Datenänderung, die durch ein Ereignis verursacht wird, ein anderes Ereignis auslösen und eine Kettenreaktion hervorrufen. Insbesondere wenn sich Daten in einigen verknüpften Sammlungen auch während des Betriebs der aktuellen Sammlung ändern, können auch Ereignisse ausgelöst werden, die mit der verknüpften Sammlung zusammenhängen.
Das Auslösen von Sammlungsereignissen enthält keine benutzerbezogenen Informationen. Nach-Aktions-Ereignisse hingegen sind näher am Benutzer und sind das Ergebnis von Benutzeraktionen. Der Kontext des Workflows enthält auch benutzerbezogene Informationen, wodurch sie sich gut für die Verarbeitung von Prozessen eignen, die mit Benutzeraktionen zusammenhängen. Im zukünftigen Design von NocoBase könnten weitere Nach-Aktions-Ereignisse zur Auslösung erweitert werden, daher wird die Verwendung von Nach-Aktions-Ereignissen stärker empfohlen, um Prozesse zu handhaben, bei denen Datenänderungen durch Benutzeraktionen verursacht werden.
Ein weiterer Unterschied besteht darin, dass Nach-Aktions-Ereignisse lokal an bestimmte Formular-Schaltflächen gebunden werden können. Wenn es mehrere Formulare gibt, können die Absendungen einiger Formulare das Ereignis auslösen, während andere es nicht tun. Sammlungsereignisse hingegen beziehen sich auf Datenänderungen in der gesamten Sammlung und können nicht lokal gebunden werden.