Beleg geändert
Nutze den Trigger Beleg geändert, um einen Flow interaktiv auszuführen – in deiner eigenen Session, während ein Beleg gespeichert wird – sobald ein Datensatz in einer der unterstützten Belegtabellen geändert wird. Da der Flow synchron läuft, kann er zwei Dinge, die ein Hintergrund-Flow nicht kann:
- Die Änderung verhindern. Schließe den Flow mit einem Fehler-Schritt ab, und das Speichern wird mit deiner Meldung abgebrochen.
- Den Datensatz ändern. Schließe den Flow mit einem Schritt Belegfeldwerte setzen ab, und deine Werte werden in den Datensatz geschrieben, bevor er gespeichert wird.
Dazwischen kannst du jeden anderen AutoFlow-Schritt verwenden (etwas nachschlagen, einen Dienst aufrufen, einen verknüpften Datensatz anlegen und so weiter).
Unterstützte Tabellen (genau eine wählen):
- Verkaufskopf, Verkaufszeile
- Einkaufskopf, Einkaufszeile
- Projekt (Job), Projektaufgabe, Projekt-Budgetzeile (Projekt-Planungszeile)
Typische Szenarien:
- Das Speichern einer Verkaufszeile verhindern, deren Rabatt eine Grenze überschreitet – mit einer klaren Meldung.
- Eine Dimension oder eine verantwortliche Person auf einem Einkaufskopf vorbelegen, wenn sich der Einkäufer ändert.
- Ein Wiedervorlagedatum setzen, sobald das Statusfeld eines Projekts bearbeitet wird.
Was passiert, wenn der Flow läuft
- Ein Benutzer ändert einen Datensatz in der gewählten Tabelle, und Business Central steht kurz vor dem Speichern.
- AutoFlow setzt deine Feldfilter. Passt der Datensatz nicht, passiert nichts.
- Sind Beobachtungsfelder konfiguriert, startet der Flow nur, wenn sich mindestens eines davon tatsächlich geändert hat (Vergleich des Werts davor und danach). Ohne Beobachtungsfelder startet er bei jedem Speichern, das den Filtern entspricht.
- Der Flow läuft synchron bis zum Ende:
- Endet er mit einem Fehler-Schritt (oder löst ein Schritt einen Fehler aus), wird das Speichern abgebrochen und der Benutzer sieht die Meldung.
- Endet er mit einem Schritt Belegfeldwerte setzen, werden diese Werte in den Datensatz geschrieben und das Speichern läuft weiter.
- Endet er einfach, läuft das Speichern unverändert weiter.
Trigger-Ausgaben
Rec— eine Referenz auf den zu speichernden Datensatz, direkt für Folgeschritte nutzbar.- Für jedes Beobachtungsfeld zwei Werte:
xRec_<Name>— der Wert vor der Änderung.Rec_<Name>— der Wert nach der Änderung.
<Name> ist der Name, den du jedem Beobachtungsfeld gibst (siehe unten).
Trigger konfigurieren
Öffne den Flow-Editor, wähle Wenn ein Beleg geändert wird (interaktiv) und fülle die Karte aus.
Tabelle
Wähle die Beleg- (oder Zeilen-)Tabelle, die beobachtet werden soll. Beim Wechsel der Tabelle werden die Feldfilter und Beobachtungsfelder gelöscht, da sie zu einer bestimmten Tabelle gehören.
Nur interaktive Sessions
Lass dies aktiviert (Standard), damit der Flow nur läuft, wenn eine Person im Client arbeitet. Speichervorgänge aus Buchungsroutinen, Aufgabenwarteschlangen oder Webdienstaufrufen bleiben unberührt – so kann ein Validierungsfehler keine Hintergrundroutine unterbrechen. Deaktiviere es nur, wenn der Flow wirklich bei jedem Speichern laufen soll.
Timeout (Sekunden)
Der Flow läuft, während der Datensatz gespeichert wird – halte den Wert also kurz. Ein langsamer Flow lässt den Benutzer auf sein Speichern warten.
Feldfilter
Optional. Beschränke den Flow auf Datensätze, die bestimmte Kriterien erfüllen (zum Beispiel Belegart = Auftrag). Nicht passende Datensätze werden ignoriert.
Beobachtungsfelder
Optional. Wähle die Felder, deren Änderung den Flow starten soll, und gib jedem einen Namen. Der Name wird automatisch aus der Feldbezeichnung vorgeschlagen (aus Buchungsdatum wird zum Beispiel Buchungsdatum bzw. PostingDate); halte ihn kurz und stabil, denn er bildet die Ausgaben xRec_<Name> und Rec_<Name>. Ohne Beobachtungsfelder startet der Flow bei jedem Speichern, das den Filtern entspricht.
Den Datensatz ändern: Belegfeldwerte setzen
Um den Datensatz anzupassen, schließe den Flow mit dem Schritt Belegfeldwerte setzen ab (nur in einem Flow Beleg geändert verfügbar). Füge je Feld eine Zeile hinzu, trage einen Wert ein (SmartField-Verweise werden unterstützt) und wähle, wie er angewendet wird:
- Validieren — als hätte ein Benutzer den Wert auf der Seite eingegeben, sodass abhängige Felder neu berechnet werden und die Standardvalidierung läuft.
- Zuweisen — den Wert direkt schreiben, ohne Validierung.
Eine Meldung auf der Seite anzeigen
Da der Flow in deiner eigenen Session läuft, zeigt ein Log-Schritt seine Meldung dem Benutzer als Seiten-Benachrichtigung an (zusätzlich zum Eintrag im Ausführungsprotokoll). Nutze das für Rückmeldungen, ohne das Speichern zu stoppen – etwa um zu bestätigen, was der Flow geändert hat. (Log-Schritte benachrichtigen nur in interaktiven Sessions; in Hintergrund- oder Webdienstläufen schreiben sie nur ins Protokoll.)
Die Änderung verhindern
Um das Speichern zu stoppen, schließe den Flow mit einem Fehler-Schritt ab und gib die Meldung an, die der Benutzer sehen soll. Das gesamte Speichern wird zusammen mit allem, was der Flow geändert hat, zurückgerollt.
Bewährte Vorgehensweisen
- Halte Beobachtungsfelder eng und den Timeout kurz. Der Benutzer wartet auf das Speichern.
- Bevorzuge Validieren, wenn sich ein Wert wie eine manuelle Eingabe verhalten soll; nutze Zuweisen nur für Rohwerte.
- Kombiniere Filter mit Beobachtungsfeldern, damit der Flow nur für die Belege und Änderungen läuft, die zählen.