Datensatz gelöscht
Nutze den Trigger Datensatz gelöscht, wenn ein Flow starten soll, sobald ein Datensatz aus einer Business-Central-Tabelle entfernt wird. Anders als bei den Triggern Datensatz geändert und Datensatz eingefügt ist der gelöschte Datensatz beim Start des Flows bereits weg. Deshalb kannst du im Trigger gezielt Felder festlegen, die vor dem Verschwinden des Datensatzes als Outputs gesichert werden.
Typische Szenarien:
- Einen gelöschten Debitor an ein externes System archivieren, bevor der Datensatz endgültig entfernt ist.
- Einen Audit-Eintrag schreiben, sobald ein Verkaufsauftrag entfernt wird.
- Ein Aufräumen an einen nachgelagerten Dienst weiterreichen, wenn ein Stammdatensatz gelöscht wird.
Was passiert, wenn der Flow läuft
- Business Central löscht einen Datensatz in der gewählten Tabelle.
- AutoFlow prüft die Triggerkonfiguration und setzt alle von dir definierten Feldfilter.
- Erfüllt der Datensatz die Filter, liest AutoFlow die Werte der konfigurierten Output-Felder aus dem Datensatz, der gleich entfernt wird.
- AutoFlow startet den Flow und stellt pro Output-Feld einen Value-Output bereit (benannt nach dem Feldnamen). Eine Referenzausgabe gibt es nicht – der Datensatz existiert nach dem Commit nicht mehr, und eine veraltete RecordId würde ins Leere zeigen.
Trigger konfigurieren
Öffne den Flow-Editor, wähle Wenn ein Datensatz gelöscht wird und fülle die Konfigurationskarte aus.
Beschreibung
- Zweck: Mach klar, wann der Flow läuft.
- Wann ausfüllen: Immer.
- Tipp: Nenne Tabelle und Grund für das Erfassen der Löschung, etwa
Verkaufsauftrag gelöscht – ins Data Lake archivieren.
Tabellennr.
- Zweck: Gibt an, welche Business-Central-Tabelle überwacht wird.
- Wann ausfüllen: Verpflichtend.
- Tipp: Wähle produktive Anwendungstabellen. Vermeide Buchungspuffer und andere Tabellen, die als Teil normaler Buchungsroutinen Datensätze entfernen.
Feldfilter
- Zweck: Beschränkt Ausführungen auf Datensätze, die bestimmte Kriterien erfüllen.
- Wann ausfüllen: Optional.
- Funktionsweise: Filter werden auf den Datensatz angewandt, bevor das Löschen abgeschlossen ist. Datensätze, die nicht passen, werden ignoriert.
Output-Felder
- Zweck: Daten aus dem gelöschten Datensatz in den Flow weitergeben.
- Wann ausfüllen: Optional. Wähle die Felder, die als Value-Output bereitstehen sollen – typischerweise den Primärschlüssel und alle Felder, die nachgelagerte Schritte brauchen.
- Funktionsweise: Jedes ausgewählte Feld wird zu einem Value-Output, benannt nach dem Feldnamen, mit einer Zeichenkettendarstellung des Feldwerts. Dezimalzahlen und Datumswerte verwenden ein gebietsschemaneutrales Format, sodass sich Flows auf jedem Mandanten gleich verhalten.
- Tipp: Erfasse den Primärschlüssel und einen menschenlesbaren Bezeichner (z. B. Debitor
Nr.undName). Weitere Felder kannst du jederzeit ergänzen, sobald nachgelagerte Schritte sie brauchen.
Best Practices
- Erfasse immer den Primärschlüssel. Ohne ihn haben nachgelagerte Schritte keinen Anker für den gelöschten Datensatz.
- Halte Outputs minimal. Alle Felder zu erfassen funktioniert, bläht aber das Ausführungsprotokoll auf. Nimm nur die Spalten, die der Flow tatsächlich nutzt.
- Achte auf Kaskadenlöschungen. Ein
DeleteAllläuft Datensatz für Datensatz über den OnDatabaseDelete-Subscriber – der Trigger feuert also einmal pro gelöschtem Datensatz, was bei einer einzelnen Benutzeraktion schnell viele Ausführungen werden können.