Deep Dive

Zustandsmodelle: Das Gedächtnis deiner Prozesse State Models: The Memory of Your Processes

Wenn Automatisierungen aufhören zu funktionieren, liegt es meist daran, dass niemand den Zustand gespeichert hat. Zustandsmodelle schaffen Ordnung. Every process needs memory. State models tell your flow where things stand, and prevent the same problem from occurring twice.

#power-automate#datenmodellierung#architektur#low-code

von by  Felix Tischler

Zustandsmodelle: Das Gedächtnis deiner Prozesse

Das Problem: Ein Prozess läuft dreimal durch. Jedes Mal verhält er sich anders, obwohl nichts geändert wurde. Oder: Ein Urlaubsantrag wurde genehmigt, aber der Eintrag im Kalender fehlt. Niemand weiß, warum. Der Prozess hat „vergessen”, wo er stand.


Das Kernproblem: Lineare Abläufe ohne Gedächtnis

Viele Automatisierungen sind linear aufgebaut:

Wenn A → dann B → dann C → fertig

Das funktioniert für einfache Fälle. Sobald aber ein Schritt:

  • übersprungen wird
  • wiederholt werden muss
  • rückgängig gemacht werden soll
  • von einer Rolle abhängt

…stößt das lineare Denken an seine Grenzen.

Zustandsmodelle sind die Antwort darauf.


Was ist ein Zustandsmodell?

Ein Zustandsmodell beschreibt:

  1. Welche Zustände ein Objekt (Antrag, Rechnung, Ticket) haben kann
  2. Welche Aktionen in welchem Zustand erlaubt sind
  3. Welche Übergänge von einem Zustand zum nächsten möglich sind

Ein Zustand ist eine definierte Phase im Lebenszyklus eines Objekts, in der bestimmte Aktionen erlaubt oder verboten sind.


Beispiel: Urlaubsantrag als Zustandsdiagramm

stateDiagram-v2
 [*] --> eingereicht : Mitarbeiter sendet Antrag

 eingereicht --> in_prüfung : Führungskraft öffnet Antrag
 in_prüfung --> genehmigt : Führungskraft genehmigt
 in_prüfung --> abgelehnt : Führungskraft lehnt ab
 genehmigt --> abgeschlossen : HR bestätigt & Kalender eingetragen
 abgelehnt --> eingereicht : Mitarbeiter reicht erneut ein

 abgeschlossen --> [*]

Was dieses Diagramm auf einen Blick zeigt:

  • Ein abgelehnter Antrag kann erneut eingereicht werden
  • Ein genehmigter Antrag kann nicht mehr abgelehnt werden
  • „abgeschlossen” ist ein Endzustand, kein Rückweg

Wie man Zustände in Power Automate umsetzt

Der einfachste Weg: Eine Statusspalte in SharePoint oder Dataverse.

Statusspalte: "Status"
Werte: eingereicht | in_prüfung | genehmigt | abgelehnt | abgeschlossen

Der Flow reagiert dann auf den aktuellen Status:

If(Status = "eingereicht") → E-Mail an Führungskraft senden
If(Status = "genehmigt") → Kalendereintrag erstellen
If(Status = "abgelehnt") → Ablehnungsbenachrichtigung senden

Das Ergebnis: Ein zustandsbasierter Kontrollfluss. Auch bei Unterbrechungen oder Wiederholungen weiß das System immer, was als Nächstes zu tun ist, weil der Zustand den Kontext erhält.


Zustandsmodelle für komplexere Szenarien

Einfache Prozesse haben 3-5 Zustände. Ein Rechnungsprüfungsprozess könnte z. B. haben:

ZustandErlaubte Aktionen
eingegangenPrüfen, Zurückweisen
in_prüfungGenehmigen, Ablehnen, Zurückstellen
zurückgestelltErneut einreichen, Eskalieren
freigegebenBuchen
gebuchtArchivieren
abgelehntBenachrichtigen, Stornieren
archiviert, (Endzustand)

4 Fragen, die du vor der Automatisierung stellen solltest

  1. Welchen Zustand hat mein Objekt zu jedem Zeitpunkt?
  2. Welche Aktionen sind in diesem Zustand erlaubt?
  3. Wer darf in welchem Zustand interagieren?
  4. Was passiert, wenn der Prozess unterbrochen wird, kann er fortgesetzt werden?

Warum das so wichtig ist

Viele Probleme in Automatisierungen entstehen dadurch, dass der aktuelle Zustand nicht explizit gespeichert wird. Das führt zu Chaos, Dopplungen und unerwartetem Verhalten.

Ein gespeicherter Zustand gibt deinem System:

  • Kompaktheit, ein Wort, ein Wert
  • Macht, steuert Verhalten, Zugriff, Logik
  • Struktur, Prozesse werden nachvollziehbar
  • Flexibilität, du kannst reagieren, verzweigen, überspringen

Fazit: Zustände sind die Kapitel deines Prozesses

Jeder gute Prozess lässt sich wie eine Geschichte erzählen, mit klaren Abschnitten. Zustände sind diese Abschnitte.

Wer in Zuständen denkt, baut Automatisierungen, die:

  • wissen, wo sie stehen
  • auf Unterbrechungen reagieren können
  • von mehreren Rollen nutzbar sind
  • auch nach Wochen noch verständlich sind

Das ist kein Programmierkonzept. Das ist Prozessverständnis.