Zum Hauptinhalt springen

Datensatz erstellt oder geändert

Nutze den Trigger Datensatz erstellt oder geändert, um einen Flow interaktiv auszuführen – in deiner eigenen Session, während ein Datensatz gespeichert wird – sobald ein Datensatz in einer der unterstützten Tabellen erstellt oder geändert wird (oder beides, nach Wahl). 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 Feldwerte 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):

  • Stammdaten: Debitor, Kreditor, Kontakt, Artikel
  • Verkaufs- und Einkaufsbelege: Verkaufskopf, Verkaufszeile, Einkaufskopf, Einkaufszeile
  • Projekte: Projekt (Job), Projektaufgabe, Projekt-Budgetzeile (Projekt-Planungszeile)
  • Abonnementverträge: Kundenabonnementvertrag, Kundenabonnementvertragszeile – verfügbar, wenn die Microsoft-App Subscription Billing installiert ist

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.
  • Eine Namensregel für einen Debitor erzwingen oder das Leeren eines Pflichtfelds an einem Artikel verhindern.
  • Werte auf einem neuen Datensatz vorbelegen, sobald er erstellt wird – zum Beispiel eine verantwortliche Person oder eine Dimension auf jedem neuen Debitor.

Was passiert, wenn der Flow läuft​

  1. Ein Benutzer erstellt oder ändert einen Datensatz in der gewählten Tabelle, und Business Central steht kurz vor dem Speichern. Der Flow läuft nur für die Ereignisse, die du aktiviert hast (siehe Wann der Flow läuft unten).
  2. AutoFlow setzt deine Feldfilter. Passt der Datensatz nicht, passiert nichts.
  3. Beim Ändern startet der Flow, sofern Beobachtungsfelder konfiguriert sind, 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. Beim Erstellen gibt es nichts zu vergleichen, daher schränken Beobachtungsfelder den Flow nicht ein – er startet für jeden neuen Datensatz, der den Filtern entspricht.
  4. 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 Feldwerte 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. Beim Erstellen gibt es keinen vorherigen Wert, daher ist dieser leer.
    • Rec_<Name> — der Wert nach der Änderung (beim Erstellen der neue Wert).

<Name> ist der Name, den du jedem Beobachtungsfeld gibst (siehe unten).

Trigger konfigurieren​

Öffne den Flow-Editor, wähle Wenn ein Datensatz erstellt oder geändert wird (interaktiv) und fülle die Karte aus.

Tabelle​

Wähle die Tabelle, die beobachtet werden soll. Beim Wechsel der Tabelle werden die Feldfilter und Beobachtungsfelder gelöscht, da sie zu einer bestimmten Tabelle gehören.

Der Tabellen-Picker listet alle Tabellen des Systems auf, der Auslöser funktioniert aber nur mit den oben genannten. Wählst du eine andere, sagt die Statuszeile unten im Dialog das sofort – "Tabelle 17 (Sachposten) wird von diesem Auslöser nicht unterstützt, der Flow würde also nie laufen" – und der Flow lässt sich nicht veröffentlichen, bis du das änderst.

Direkt neben dieser Meldung sitzt Diese Tabelle anfragen. Das schickt die Tabelle und den Auslöser an das AutoFlow-Team, zusammen mit deiner Organisation, damit wir uns bei dir melden können. Die Schaltfläche erscheint nur, solange die gewählte Tabelle nicht unterstützt wird. Dein Partner kann Tabellen auch selbst über eine kleine Begleit-Extension ergänzen; sprich uns dafür an.

Wann der Flow läuft​

Zwei Schalter entscheiden, welche Ereignisse den Flow starten:

  • Beim Ändern eines Datensatzes ausführen — läuft, während ein bestehender Datensatz geändert wird. Standardmäßig aktiviert (und genau das taten Flows schon immer, bevor es diese Option gab).
  • Beim Einfügen eines Datensatzes ausführen — läuft, während ein neuer Datensatz erstellt wird.

Aktiviere eines von beiden oder beide. Beim Erstellen gibt es keinen vorherigen Wert, daher sind die xRec_<Name>-Ausgaben leer, und Beobachtungsfelder schränken nicht ein, wann der Flow läuft – nur die Feldfilter gelten.

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: Feldwerte setzen​

Um den Datensatz anzupassen, schließe den Flow mit dem Schritt Feldwerte setzen ab (nur in einem Flow Datensatz 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.

Die Option Standardverarbeitung überspringen des Schritts hat hier keine Wirkung – der Datensatz wird immer normal gespeichert.

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 Datensätze und Änderungen läuft, die zählen.