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.
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:
- Welche Zustände ein Objekt (Antrag, Rechnung, Ticket) haben kann
- Welche Aktionen in welchem Zustand erlaubt sind
- 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:
| Zustand | Erlaubte Aktionen |
|---|---|
eingegangen | Prüfen, Zurückweisen |
in_prüfung | Genehmigen, Ablehnen, Zurückstellen |
zurückgestellt | Erneut einreichen, Eskalieren |
freigegeben | Buchen |
gebucht | Archivieren |
abgelehnt | Benachrichtigen, Stornieren |
archiviert | , (Endzustand) |
4 Fragen, die du vor der Automatisierung stellen solltest
- Welchen Zustand hat mein Objekt zu jedem Zeitpunkt?
- Welche Aktionen sind in diesem Zustand erlaubt?
- Wer darf in welchem Zustand interagieren?
- 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.