#### 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 Daten oder Bedingungen über den Bearbeitungsstand verbindet. Hat man etwa zwei Unteraufgaben U1 und U2, so kann man z.B. die folgende Festlegung bezüglich der Ein- und Ausgabedaten der Unteraufgaben treffen:

o Für Unteraufgabe U2 gibt man als Eingabedatum ein Dokument D an, das zu den Ausgabedaten von Unteraufgabe U1 gehört. Folglich kann U2 erst starten, wenn U1 erledigt ist, das Dokument D also freigegeben ist. Es besteht eine Lieferbeziehung zwischen den beiden Aufgaben: U1 liefert D an U2.

o 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 Eingabedaten der Hauptaufgabe als Eingabedaten übernehmen oder als Ausgabedaten Teile der Ausgabedaten der Hauptaufgabe liefern. So kann man die Leistung der Hauptaufgabe komplett oder teilweise durch die Unteraufgaben erbringen lassen.

Wenn man für eine Unteraufgabe festlegt, dass sie z. B. als Eingabedatenfeld ein Eingabefeld der Hauptaufgabe übernimmt, dann haben Unteraufgabe und Hauptaufgabe dieses Datenfeld gemeinsam. Aufgaben, die ein Datenfeld gemeinsam haben, haben auch den Wert dieses Datenfelds gemeinsam, wenn der Wert freigegeben ist. Folglich wird der Wert eines solchen Datenfelds von der Hauptaufgabe zur Unteraufgabe kopiert, wenn er freigegeben wird, in unserem Beispiel also, wenn die Hauptaufgabe gestartet wird. Der Wert kann nicht in der Unteraufgabe unabhängig von der Hauptaufgabe geändert werden.

Man kann die Verknüpfung von Aufgaben nicht nur an konkreten Datenfeldern festmachen, sondern auch am Bearbeitungszustand einer Aufgabe. Dabei orientiert man sich am Freigabezustand der Ein- und Ausgabedaten:

o <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 Zustand initial, zurückgezogen oder storniert. Als Bedingung für den Start einer anderen 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.

o <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 befindet sich im Zustand erledigt, abgenommen oder abgeschlossen, aber nicht etwa im Zustand gestartet oder übernommen. Als Bedingung für den Start einer anderen Aufgabe wirkt <Ausgabedaten freigegeben> immer so, dass die andere Aufgabe starten kann, wann immer die bedingende Aufgabe durch die Erledigung in den Zustand übergeht, in dem ihre Ausgabedaten 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 werden kann, wenn Unteraufgabe U2 erledigt ist, wählt man bei den Ausgabedaten der Hauptaufgabe als Bedingung <Ausgabedaten von U2 freigegeben> aus.