Workflows#

sysman sysadmin

Workflows in Allegra basieren auf den Zuständen der Vorgänge. Ein Workflow ist eine Anzahl durch Übergänge verknüpfter Zustände.

Sie können Workflows mit dem Workflow-Editor definieren, in denen festgelegt wird,

  • Was einen Zustandsübergang auslöst

  • Welche Bedingungen erfüllt sein müssen, damit der Zustandsübergang tatsächlich erfolgt

  • Was beim Übergang vom Ausgangszustand zum Zielzustand alles passieren soll

Um Workflows hinzuzufügen oder zu bearbeiten, gehen Sie zu Verwaltung > Workflows.

../_images/workflow1.png

Workflows hinzufügen und bearbeiten#

In der dritten Spalte von links sehen Sie das standardmäßige hierarchische Konfigurationsschema. Sie weisen Workflows den Vorgangstypen, Bereichstypen und Bereichen zu, indem Sie sie ausTabelle auf der rechten Seite auf den entsprechenden Knoten in der dritten Spalte ziehen. Workflows werden von globalen Zuweisungen bis zur detailliertesten Zuweisung für einen bestimmten Vorgangstyp in einem bestimmten Bereich vererbt.

Sie können einen Workflow auf einer niedrigeren Ebene überschreiben, indem Sie dort einen anderen Workflow zuweisen. Sie können zu der geerbten Zuordnung zurückkehren, indem Sie diesen Knoten zurücksetzen.

Um einen Workflow hinzuzufügen, klicken Sie auf „Hinzufügen“ im Aktionsmenü. Geben Sie einen Namen ein, ein optionales Tag, falls Sie viele Workflows haben und diese gruppieren und kategorisieren möchten, sowie eine optionale Beschreibung. Speichern Sie dann den Workflow.

../_images/workflow2.png

Um den Workflow zu definieren, wählen Sie einen existierenden aus und klicken auf „Konfigurieren“ im Aktionsmenü. Um einen neuen Workflow zu definieren, klicken Sie auf „Hinzufügen“. Ein grafisches Editorfenster wird geöffnet.

../_images/workflow3.png

Der grafische Workfloweditor#

Zu Beginn werden Sie eine Reihe von Zuständen von Bereich A nach Bereich B ziehen. Es gibt einen speziellen Startzustand, der außerhalb der regulären Zustandsmenge liegt. Der Übergang von diesem Startzustand zu einem anderen Zustand in Ihrem Workflow-Diagramm erfolgt, wenn ein Vorgang erstellt wird. Dies ist nützlich, wenn Sie diesen Vorgang zunächst jemandem zuweisen möchten, der von Vorgangsdaten wie Schlüsselwörtern oder Tags abhängt. Dies funktioniert auch bei der Erstellung von Vorgängen durch E-Mail-Versand.

Sie können Zustände durch Übergänge verbinden. Um einen Übergang zu zeichnen, wählen Sie das Übergangssymbol in der kleinen Symbolleiste, klicken Sie auf den Quellknoten und ziehen Sie die Linie zum Zielknoten. Sie können die Form des Übergangs ändern, indem Sie seine Griffe (in der Abbildung oben als C dargestellt) verschieben.

Sie können einen Übergang mit vier Eigenschaften verknüpfen:

  • Ereignissen, die diesen Übergang auslösen

  • Bedingungen („Guards“), die den Übergang verhindern können

  • Aktivitäten, die beim Übergang durchgeführt werden

Im folgenden Abschnitt werden diese Elemente ausführlicher beschrieben.

Auslösendes Ereignis#

Ein Übergang wird durch ein Ereignis ausgelöst oder eingeleitet. Die aktuell zu verarbeitenden Ereignisse werden in einer Warteschlange gehalten.

Die Workflow Engine läuft in einem Zyklus von 60 Sekunden, d.h. alle 60 Sekunden wird die Trigger-Ereignis-Warteschlange überprüft wird. Solange noch Einträge vorhanden sind, werden sie abgearbeitet. Die Abarbeitung eines Triggers kann zu neuen auslösenden Ereignissen führen, die sofort an die Warteschlange angehängt werden.

../_images/workflow4.png

Die folgenden Ereignisse sind in Allegra vordefiniert:

  • Speichern eines geänderten Vorgangs, manuell oder durch die Workflow Engine

  • Eine Zeitüberschreitung basierend auf der letzten Änderung eines Vorgangs

  • Eine Zeitüberschreitung basierend auf der letzten Zustandsänderung eines Vorgangs

Eine Zustandsänderungsaktion setzt voraus, dass Quell- und Zielzustand unterschiedlich sind. In allen anderen Fällen können der Quell- und der Zielzustand gleich sein. Sie könnten zum Beispiel Prüfungen für einen Vorgang durchführen, wenn er bearbeitet wird. Oder Sie könnten automatisch ein Vorgangsattribut ändern, wenn der Bearbeiter geändert wurde. Oder Sie könnten automatisch die Zuweisung des Bearbeiters für einen untergeordneten Vorgang ändern. Im Prinzip gibt es keine Grenzen, was Sie tun können, wenn ein Vorgang geändert wird.

Sie verknüpfen eine auslösende Aktion „Trigger“ oder „Eskalations-Auslöser“ mit einem Übergang, indem Sie zuerst den Übergang (C) und dann den Eskalations-Auslöser (F) auswählen.

Bedingungen („Guards“)#

Sobald ein Übergang ausgelöst wird, muss eine optionale Schutzbedingung erfüllt sein, damit der Übergang tatsächlich stattfindet. Wenn die Schutzbedingung falsch ist, wird der Übergang abgelehnt. Sie verknüpfen eine Schutzbedingung mit einem Übergang, indem Sie zunächst den Übergang auswählen (C) und dann die gewünschten Schutzbedingungen hinzufügen (D).

../_images/workflow6.png

Guard-Bedingungen#

Es gibt eine Reihe von Guard-Bedingungen:

  • Eine Rolle, die die Person, die diesen Übergang über eine Aktion einleitet, in dem Raum haben muss, zu dem der Vorgang gehört

  • Eine bestimmte Person

  • Ein Guard-Skript für den Workflow

  • Eine Automail-Bedingung (siehe Automail-Bedingungen)

Wenn Sie eine Reihe von Schutzmaßnahmen angeben, wird der Übergang durchgeführt, wenn eine der Schutzmaßnahmen erfüllt ist.

Aktivitäten#

Wenn ein Übergang genommen wird, werden die damit verbundenen Aktivitäten ausgeführt. Sie verknüpfen Übergangsaktivitäten mit einem Übergang, indem Sie zunächst den Übergang auswählen (C) und dann die gewünschten Aktivitäten hinzufügen (E).

Es gibt eine Reihe von Übergangsaktivitäten:

  • Ändern einer beliebigen Elementeigenschaft wie Verantwortlicher, Manager oder Status

  • Versenden einer E-Mail auf der Grundlage einer E-Mail-Vorlage

  • Ausführen eines Workflow-Aktivitätsskripts

Mit einem Skript für eine Workflow-Aktivität können Sie im Grunde alles tun, was Sie sich vorstellen können: untergeordnete Vorgänge erstellen, Projektvorlagen kopieren usw.

../_images/workflow5.png

Aktivitäten#

Wenn Sie eine Änderungsaktivität für ein Vorgangsattribut auswählen, können Sie anstelle eines konkreten Wertes einen Parameter in den Workflow eingeben. Wenn Sie einen solchen Workflow einem Bereich, einem Vorgangstyp oder einem Bereichstyp zuordnen, können Sie dann interaktiv einen echten Wert zuweisen.

Alle Aktivitäten außer dem Versenden von E-Mails verändern zunächst nur eine Kopie des betroffenen Vorgangs. Erst mit dem Ende der letzten Aktivität werden die Änderungen gespeichert. E-Mails basieren immer auf den gespeicherten Vorgangsdaten und werden deshalb erst nach der letzten Aktivität verschickt.

Zustände#

Ein Workflow wird hauptsächlich durch Zustände und Übergänge zwischen den Zuständen beschrieben. Zusätzlich zu den Zuständen, die Sie in Ihrem System definiert haben, gibt es zwei weitere Zustände, die im Workflow-Editor verfügbar sind.

Der Ausgangszustand ist derjenige, in dem sich ein Vorgang befindet, nachdem er erstellt und bevor er gespeichert wurde. Wenn Sie z.B. die Erstellung von Vorgängen per E-Mail zulassen, können Sie diesem Übergang Bedingungen und Aktivitäten hinzufügen, die auf der Grundlage der E-Mail-Adresse des Absenders den Vorgang einem bestimmten Bereich oder Verantwortlichen zuweisen.

Der Übergang in den End-Zustand erfolgt, wenn ein Vorgang gelöscht wird. Dies ist im Moment nicht möglich und insofern ist dieser Übergang z.Zt. bedeutungslos.

Addendum#

Übergänge zu und von isolierten Knoten#

Es gibt Anwendungsfälle, in denen Übergänge zwischen allen Workflow-Status möglich sein sollten, bei denen das Einzeichnen von Übergängen von allen Status zu allen Status (hin und zurück) jedoch die Benutzeroberfläche überladen würde. Um dies zu vermeiden, wurden neue Konfigurationen hinzugefügt, die Übergänge zu und von vollständig oder teilweise isolierten Knoten erlauben.

Workflows mit isolierten Knoten sind immer noch mächtiger als gar kein Workflow (d. h. sich nur auf die erlaubten Status zu verlassen, die der Kombination aus Workspace-Typ und Item-Typ zugewiesen sind): Die Entry-/Exit-/Do-Aktivitäten werden weiterhin ausgeführt. Ohne expliziten Übergang zwischen zwei isolierten Knoten können natürlich keine Übergangsaktivitäten konfiguriert werden.

Es gibt vier neue Konfigurationsmöglichkeiten, die die Behandlung von vollständig und teilweise isolierten Knoten steuern:

# Ob ein Übergang zu einem Knoten ohne eingehende Übergänge erlaubt ist
workflow.allowTransitionToNodeWithoutIncomingTransition=<trueOrFalse>

# Ob ein Übergang zu einem Knoten ohne jegliche Übergänge
# (weder eingehende noch ausgehende Übergänge) erlaubt ist
workflow.allowTransitionToIsolatedNode=<trueOrFalse>

# Ob ein Übergang von einem Knoten ohne ausgehende Übergänge erlaubt ist
workflow.allowTransitionFromNodeWithoutOutgoingTransition=<trueOrFalse>

# Ob ein Übergang von einem Knoten ohne jegliche Übergänge
# (weder eingehende noch ausgehende Übergänge) erlaubt ist
workflow.allowTransitionFromIsolatedNode=<trueOrFalse>

Diese Einstellungen sind derzeit systemweit; später sollen sie für jeden Workflow einzeln konfigurierbar sein.

Der Eskalations-Trigger wird bei der Beurteilung, ob ein Knoten isoliert ist oder nicht, berücksichtigt. Wenn ein Knoten beispielsweise einen durch den Empfang einer E-Mail ausgelösten Übergang besitzt, aber keinen Übergang für einen expliziten Statuswechsel, gilt er hinsichtlich der expliziten Auswahl eines neuen Status über die Benutzeroberfläche weiterhin als isoliert.

Löschen & Archivieren von Items#

Der Workflow kann steuern, ob das Löschen/Archivieren/Wiederherstellen/ Entarchivieren eines Items erlaubt oder verboten ist. Die END-Station bedeutet entweder „archiviert“ oder „gelöscht“.

Auf Workflow-Ebene gibt es keinen Unterschied zwischen archiviert und gelöscht: Entweder sind beide möglich oder keines von beiden. Der Benutzer kann auf der Benutzeroberfläche entscheiden, ob das Item gelöscht oder archiviert wird – beides bezieht sich auf den Eintritt in die Station namens END.

Die Übergänge zu und von der END-Station können entweder durch explizite Übergänge mit oder ohne Guards bedingt werden, oder es gelten die Konfigurationen bezüglich der Übergänge zu und von isolierten Knoten auch für das Betreten und Verlassen der END-Station.

Bedingte Aktivitäten#

Jede Workflow-Aktivität, sei es eine Übergangsaktivität oder eine Knotenaktivität (Entry/Exit/Do), kann optional eine Bedingung haben. Das bedeutet, die Aktivität wird ausgeführt, wenn entweder keine Bedingung definiert ist oder die Bedingung wahr ist.