Unteraufgaben zu Workflows verbinden

Man kann die Unteraufgaben einer Hauptaufgabe (und auch die Aufgaben eines Projekts oder einer Phase) zu einem Workflow-Prozess verknüpfen, indem man sie durch gemeinsame Da­ten oder Be­din­gungen über den Bearbeitungsstand verbindet. Hat man etwa zwei Unter­auf­ga­ben U1 und U2, so kann man z.B. die folgende Festlegung bezüglich der Ein- und Ausgabe­da­ten der Un­ter­auf­gaben treffen:

Für Unteraufgabe U2 gibt man als Eingabedatum ein Dokument D an, das zu den Aus­gabe­daten von Unteraufgabe U1 gehört. Folglich kann U2 erst starten, wenn U1 er­le­digt ist, das Dokument D also freigegeben ist. Es besteht eine Lieferbeziehung zwi­schen den beiden Aufgaben: U1 liefert D an U2.

Genauso kann man für Unteraufgabe U1 als Ausgabedatum das Dokument D angeben, das zu den Eingabedaten von Unteraufgabe U2 gehört. Der Effekt ist der gleiche; das unterschiedliche Vorgehen hängt davon ab, welche Unteraufgabe man zuerst definiert hat, U1 oder U2.

Man kann auch die Unteraufgaben mit der Hauptaufgabe verbinden, indem sie z.B. die Ein­gabe­daten der Hauptaufgabe als Eingabedaten übernehmen oder als Ausgabedaten Teile der Aus­gabedaten der Hauptaufgabe liefern. So kann man die Leistung der Hauptaufgabe kom­plett oder teilweise durch die Unter­aufgaben erbringen lassen.

Wenn man für eine Unteraufgabe festlegt, dass sie z. B. als Eingabe­datenfeld ein Eingabefeld der Hauptaufgabe übernimmt, dann haben Unteraufgabe und Hauptaufgabe dieses Datenfeld gemeinsam. Aufgaben, die ein Datenfeld gemeinsam haben, haben auch den Wert dieses Da­ten­felds gemeinsam, wenn der Wert freigegeben ist. Folglich wird der Wert eines solchen Daten­felds von der Hauptaufgabe zur Unteraufgabe kopiert, wenn er freigegeben wird, in un­se­rem Beispiel also, wenn die Hauptaufgabe gestartet wird. Der Wert kann nicht in der Unter­auf­gabe unabhängig von der Hauptaufgabe geändert werden.

Man kann die Verknüpfung von Aufgaben nicht nur an konkreten Datenfeldern festmachen, son­dern auch am Bearbeitungszustand einer Aufgabe. Dabei orientiert man sich am Freigabe­zu­stand der Ein- und Ausgabe­daten:

<Eingabedaten freigegeben>: Die Eingabedaten einer Aufgabe sind freigegeben, wenn der Auftraggeber die Eingabedaten durch eine Aufgabenaktion (in der Regel starten) für gültig erklärt hat und sie nun nicht ändern kann. Die Aufgabe befindet sich im Zustand gestartet, übernommen, vielleicht auch schon erledigt, aber nicht etwa im Zu­stand initial, zurückgezogen oder storniert. Als Bedingung für den Start einer an­deren Aufgabe wirkt <Eingabedaten freigegeben> immer so, dass die andere Aufgabe starten kann, wann immer die bedingende Aufgabe in einen Zustand übergeht, in dem ihre Eingabedaten freigegeben sind.

<Ausgabedaten freigegeben>: Die Ausgabedaten einer Aufgabe sind freigegeben, wenn der Auftragnehmer die Ausgabedaten durch eine Aufgabenaktion (erledigen oder fertigstellen) für gültig erklärt hat und sie nun nicht ändern kann. Die Aufgabe be­findet sich im Zustand erledigt, abgenommen oder abgeschlossen, aber nicht etwa im Zu­stand gestartet oder übernommen. Als Bedingung für den Start einer anderen Auf­gabe wirkt <Aus­gabe­daten freigegeben> immer so, dass die andere Aufgabe star­ten kann, wann immer die bedingende Aufgabe durch die Erledigung in den Zustand über­geht, in dem ihre Aus­gabe­daten freigegeben sind.

Wenn man also erreichen will, dass Unteraufgabe U2 erst loslaufen kann, wenn Unteraufgabe U1 erledigt ist, wählt man bei den Eingabedaten von U2 als Bedingung <Ausgabedaten von U1 freigegeben> aus. Wenn man erreichen will, dass die Hauptaufgabe erst erledigt wer­den kann, wenn Unteraufgabe U2 erledigt ist, wählt man bei den Ausgabedaten der Haupt­auf­gabe als Bedingung <Ausgabedaten von U2 freigegeben> aus.