Jegliche Änderung – wenn der Redakteur „Speichern“ klickt – vermerkt das System mit den ersten drei von vier, prinzipiell vom Workflow unabhängigen Basiszuständen für Objektänderungen:

  1. STATE_NEW
  2. STATE_MODIFIED
  3. STATE_DELETED
  4. NULL (kein Zustand)

Bekommt ein Content-Objekt einen dieser Basiszustände zugewiesen, so wird bei aktiviertem Workflow automatisch für den PAGE-Container ein (virtueller) Übergang in den Workflow-Prozess ausgelöst (TR_ENTER). Damit bekommt der PAGE-Container (wie auch das betroffene Content-Objekt selbst) den ersten Worklfow-Status zugewiesen („Geändert“, AC_CHANGED).

Die ZMS-Workflow-Definition geht von folgendem Modell aus: Arbeitsschritte manifestieren sich am Content-Objekt in der durch Workflow-Mechanismus erwirkten Deklaration eines Status-Attributes. Dabei gelten folgende Prinzipien:

  1. Ein Arbeitsschritt bedingt einen Übergang (transition) von einem aktiven Workflow-Zustand (activity-state) des Content.Objektes in einen anderen.
  2. Ein Workflow ist die Folge vordefinierter Zustands-Übergänge in logischer Reihenfolge - mit dem Ziel der Dokument-Freigabe.
  3. Ausgehend vom Basiszustand beginnt der Workflow stets mit dem Übergang TR_ENTER, d.h. mit der Überführung des Objektes in den aktiven workflow-spezifischen Ausgangszustand („Geändert“). Der Workflow endet immer mit dem Übergang TR_LEAVE in den Ziel-Zustand AC_COMMITTED „Freigegeben“ (entspricht dem leeren Basiszustand NULL).
WF_processingscheme.gif

Ablaufschema des prinzipiell zweistufigen Standard-Workflow mit otionaler Ablehnen-Schleife

Anhand des im Bild dargestellten Standard-Workflows, der einen im Prinzip zweistufigen Prozess (zzgl. optionaler Ablehnung) abbildet, kann man das Zusammenwirken von Übergängen und aktiven Workflow-Zuständen verdeutlichen: der Eintritt in den Workflow beginnt mit dem Übergang des Content-Objekts in den Bearbeitungszustand.

Die Workflow-Konfiguration gibt nun (rollengebundenen) vor, welche Übergänge sich an diesen Zustand anschließen dürfen: für den hier dargestellten Beispiel-Workflow wären das die Übergänge Freigabe beantragen, Schnellfreigabe, Zurücknehmen. Nach Freigabe (Commit) oder Zurücknehmen (rollback) kommt ein Objekt in den aktiven Status AC_COMMITTED oder AC_ROLLEDBACK. Diese sind über die (virtuelle) Transaktion TR_LEAVE als Ausstiegskriterien aus dem Workflow-Prozess definiert und münden damit letztlich wieder in einen passiven Zustand.