#### Workflows bearbeiten: Was ist anders als bei Einzelaufgaben?

Die Hauptunterschiede zwischen der Bearbeitung von Einzelaufgaben und einem Workflow aus Hauptaufgabe und Unteraufgaben sind:

o Aufgaben, die gemeinsame Datenfelder mit Hauptaufgabe, Unteraufgaben oder Nachbaraufgaben haben, hängen bei Start oder Erledigung von der Freigabe dieser Datenfelder ab: eine Unteraufgabe kann nur gestartet werden, wenn alle ihre Eingabedaten, die sie mit anderen Aufgaben gemeinsam hat, freigegeben sind; eine Hauptaufgabe kann nur erledigt werden, wenn alle Ausgabedaten, die sie gemeinsam mit Unteraufgaben hat, freigegeben sind. Genauso wirken Start- oder Erledigungsbedingungen über die Freigabe solcher Daten.

o Aktionen an einer Hauptaufgabe oder Unteraufgaben in einem Workflow können weitere Aktionen an anderen Aufgaben im Workflow auslösen. Der Arbeitsablauf in einem Netz von Hauptaufgabe und Unteraufgaben wird unterstützt

o durch die Weitergabe von Werten gemeinsamer Datenfelder, wenn immer sie freigegeben werden, und durch automatisches Vorantreiben des Workflow, z.B. durch Starten von Unteraufgaben, deren sämtliche Eingaben durch Start der Hauptaufgabe freigegeben wurden, und durch Erledigung von Hauptaufgaben, deren sämtliche Ausgaben durch die Erledigung von Unteraufgaben freigegeben wurden,

o durch Rücknahme von Werten gemeinsamer Datenfelder, wenn immer ihre Freigabe rückgängig gemacht wurde, und durch automatisches Rücksetzen des Workflow, z.B. durch Beanstandung der Erledigung einer Unteraufgabe, deren Ausgabe als Eingabefeld in einer Nachbaraufgabe beanstandet wurde.

Auch werden alle Unteraufgaben storniert, wenn die Hauptaufgabe storniert wird, und alle Unteraufgaben werden reaktiviert, wenn die Hauptaufgabe reaktiviert wird.

o Bei der Berechnung des voraussichtlichen Fertigstellungstermins einer Hauptaufgabe wird die voraussichtliche Dauer für die Fertigstellung der Unteraufgaben herangezogen, sollte sie länger sein als die ursprünglich angegebene voraussichtliche Dauer der Hauptaufgabe.

Wenn ein Workflow bestehend aus Hauptaufgabe und Unteraufgaben kopiert wird, werden alle Aufgaben behandelt, als würden sie als Einzelaufgaben kopiert (Auftraggeber, eventuelle Datenfeldwerte und Ablaufprotokolle werden entfernt, der Zustand wird auf initial gesetzt); da die Datenfelder kopiert werden, bleiben die Beziehungen zwischen den Aufgaben des Workflow in Form gemeinsamer Datenfelder und Freigabebedingungen erhalten.

##### Unterstützung von Workflows: ein Beispiel

Wir nehmen als Beispiel die Aufgabe „Anforderungen“ aus der Analyse-Phase unseres Projekts „Ersetzung des Provisionsabrechnungssystems“. Diese Aufgabe haben wir oben in zwei Unteraufgaben „Anforderungserhebung“ und „Abnahme der Anforderungen“ aufgeteilt und zwar so, dass „Anforderungserhebung“ die Eingabedaten von „Anforderungen“ übernimmt, als Ausgabe das Dokument „Anforderungsspezifikation“ an die Hauptaufgabe und die Nachbaraufgabe „Abnahme der Anforderungen“ liefert, die ihrerseits schließlich „Anforderungen abgenommen“ (ein Ankreuzfeld) an die Hauptaufgabe liefert, die damit ihre sämtlichen Ausgaben erhalten hat.

Wenn die Aufgabe „Anforderungen“ gestartet wird, wird auch die Unteraufgabe „Anforderungserhebung“ automatisch gestartet und die Auftragnehmer werden benachrichtigt. Nach Erledigung dieser Unteraufgabe wird die Unteraufgabe „Abnahme der Anforderungen“ automatisch gestartet. Nach Erledigung der Abnahme sind die Ausgabedaten der Hauptaufgabe „Anforderungen“ freigegeben und die Hauptaufgabe wird automatisch erledigt, denn die Unteraufgaben sind ja gerade so definiert, dass sie die Hauptaufgabe ersetzen.

Wenn Ausnahmesituationen auftreten, z.B. die Anforderungsspezifikation vom Vertreter der Fachabteilung beanstandet wird (Aktion Aufgabe Beanstanden in der Unteraufgabe „Abnahme der Anforderungen“), wird der Workflow zurückgesetzt: das Ergebnis der Unteraufgabe „Anforderungserhebung“ wird automatisch beanstandet, so dass auf die Beanstandungen reagiert werden kann. Nach erneuter Erledigung von „Anforderungserhebung“ wird „Abnahme der Anforderungen“ wieder gestartet.