Zum Hauptinhalt springen

Datensatz geändert

Nutze den Trigger Datensatz geändert, wenn ein Flow starten soll, sobald sich ein Datensatz in Business Central ändert. Wie Datensatz eingefügt hängt der Trigger auf Datenbankebene und reagiert auf Änderungen aus der Oberfläche, einem API-Aufruf oder einem Hintergrundjob. Optional kannst du gezielte Beobachtungsfelder wählen, sodass der Flow nur startet, wenn sich genau eines dieser Felder ändert – der Rest des Datensatzes darf sich frei bewegen, ohne den Flow auszulösen.

Typische Szenarien:

  • Reagieren, wenn sich der Status Gesperrt eines Debitors ändert.
  • Eine Benachrichtigung verschicken, sobald der Status eines Verkaufsauftrags auf Freigegeben wechselt.
  • Bestimmte Artikelfelder mit einem externen System abgleichen, ohne bei jeder harmlosen Änderung neu zu synchronisieren.

Was passiert, wenn der Flow läuft

  1. Business Central ändert einen Datensatz in der gewählten Tabelle.
  2. AutoFlow prüft die Triggerkonfiguration und setzt alle von dir definierten Feldfilter.
  3. Sind Beobachtungsfelder konfiguriert, vergleicht AutoFlow den geänderten Datensatz mit einem Snapshot, der bei der Veröffentlichung erstellt und nach jedem Modify aktualisiert wird. Der Flow startet nur, wenn sich der Wert mindestens eines Beobachtungsfelds unterscheidet.
  4. Sind keine Beobachtungsfelder konfiguriert, startet der Flow bei jedem Modify, der die Feldfilter passiert.
  5. Der Trigger liefert zwei Outputs:
    • Rec – die Record-ID des geänderten Datensatzes, bereit für nachfolgende Datensatzschritte.
    • ChangedFields – ein JSON-Array [{"fieldNo", "fieldName", "oldValue", "newValue"}, …] mit jedem geänderten Beobachtungsfeld (leeres Array, wenn keine Beobachtungsfelder konfiguriert sind).

Trigger konfigurieren

Öffne den Flow-Editor, wähle Wenn ein Datensatz geändert wird und fülle die Konfigurationskarte aus.

Beschreibung

  • Zweck: Mach klar, wann der Flow läuft.
  • Wann ausfüllen: Immer. Die Beschreibung erscheint in Triggerlisten und in der Ausführungshistorie.
  • Tipp: Nenne Tabelle und beobachtete Felder, etwa Debitor: Status Gesperrt ändert sich.

Tabellennr.

  • Zweck: Gibt an, welche Business-Central-Tabelle überwacht wird.
  • Wann ausfüllen: Verpflichtend.
  • Tipp: Wähle produktive Anwendungstabellen. Vermeide temporäre oder Puffer-Tabellen, die sich während Buchungsroutinen ändern – sie lösen viele irrelevante Modify-Ereignisse aus.

Feldfilter

  • Zweck: Beschränkt Ausführungen auf Datensätze, die bestimmte Kriterien erfüllen, bevor der Beobachtungsfeld-Vergleich greift.
  • Wann ausfüllen: Optional. Dringend zu empfehlen, wenn nur ein Teil der Datensätze relevant ist.
  • Funktionsweise: Filter werden zuerst angewandt. Datensätze, die den Filter nicht passieren, werden ignoriert – unabhängig von ihren Beobachtungsfeldern.

Beobachtungsfelder

  • Zweck: Den Trigger auf tatsächlich geänderte Felder beschränken, die dich interessieren.
  • Wann ausfüllen: Optional. Wähle ein oder mehrere Felder, deren Änderung den Flow starten soll. Bleibt die Liste leer, startet der Flow bei jedem Modify, der die Filter passiert.
  • Systemfelder sind gesperrt: SystemId, SystemModifiedAt und der Rest der System-Metadatenfelder können nicht ausgewählt werden – sie ändern sich bei jedem Modify und würden den Sinn des Triggers aushebeln.
  • Tipp: Wähle die kleinstmögliche Menge an Feldern. Jedes zusätzliche Beobachtungsfeld vergrößert den Snapshot-Cache, der bei der Veröffentlichung gefüllt wird.

Best Practices

  • Halte Beobachtungsfelder schlank. Ein einzelnes Beobachtungsfeld auf einer stark frequentierten Tabelle ist deutlich günstiger als ein Snapshot des gesamten Datensatzes.
  • Kombiniere Filter mit Beobachtungsfeldern. Filtere auf die relevante Teilmenge der Datensätze (z. B. Document Type=Order) und beobachte nur die Felder, deren Änderung wirklich zählt.
  • Achte auf Massenoperationen. Ein ModifyAll ändert jeden Datensatz einzeln über den OnDatabaseModify-Subscriber – der Trigger feuert also einmal pro Datensatz.
  • Backfill blockiert die Veröffentlichung. Wenn du eine neue Flow-Version mit Beobachtungsfeldern veröffentlichst, läuft AutoFlow einmal die ganze Tabelle durch, um den Snapshot zu füllen. Bei sehr großen Tabellen kann das einen Moment dauern.