Die Planung - Arbeiten mit der Planung - Rund um Projekte - TerminierungsverfahrenTerminierung durch Programmierung |
Die Terminierung kann auch durch eine Art Programmierungssprache genauer definiert werden. Dies ermöglicht, die Terminierung aufgrund von mehreren Anhaltspunkten durchzuführen.
Dabei kann z.B. bestimmt werden, welche Daten für die Anfangsterminierung benötigt werden.
Die Funktion kann über die Vorgangseigenschaften im Reiter "Eckdatenterminierung" aufgerufen werden. Dort werden anschliessend die Funktionen eingetragen und die nötigen Parameter übergeben.
Wie oben zu sehen ist, wird das Feld für die Eingaben angezeigt. In diesem Fall wurde der Vorgang "Funktion: dialog(start)" ausgewählt und die Eigenschaften für den Terminierungsdialog eingegeben. Die Eingabe wird wie folgt eingeteilt:
1,
Priorität für die Abarbeitung der Reihenfolge einzelner Vorgänge(Komma muss vorhanden sein)
dialog()
Die Funktion die durchgeführt werden soll. In dialog() wird z.B. festgelegt, welche Eigenschaften zum Terminieren für den Vorgang festgelegt werden
start
Legt fest, dass der Starttermin, für den ausgewählten Vorgang, für die Terminierung eingegeben werden kann. Weitere Eingabemöglichkeiten sind "end"(Das Ende kann festgelegt werden) oder "duration"(Die Dauer des Vorgangs wird bestimmt). Maximal können 2 Werte in Kombination mit "/" eingegeben werden. Z.B. 1,dialog(start/duration); 1,dialog(start/end); oder 1,dialog(duration/end);
";"
wird als Befehlsabschluss verwendet um bei mehreren Eingaben, das Ende eines Statements festzulegen.
Die Eingabe "1,dialog(start);" ergibt nun folgendes Ergebnis, dass der Vorgang "Funktion: dialog(start)" für die Terminierung nur die Möglichkeit bereitstellt, das Startdatum festzulegen.
Terminierungsdialog
Eine weitere Funktion der benutzerdefinierten Terminierung ist der Befehl "fit()". Dieser ermöglicht, einen Vorgang konstant zwischen zwei anderen Vorgängen zu halten.
Wie im oberen Screenshot zu sehen ist, wurde die Funktion fit() mit der Priorität 30 verwendet. Die Prioritäten von der Funktion fit() sollten eher eine hohe Zahl beinhalten, da sonst andere Vorgänge oder Terminierungsmethoden die später geschehen, die Terminierung der Methode fit() wieder ändern könnten. Festgelegt wurde in diesem Beispiel nun, dass der Vorgang "Dummy - Angepasst mit fit()" konstant zwischen "Dummy Startpunkt" und "Dummy Endpunkt" gehalten wird. Die Parameter "Dummy Startpunkt.start" und "Dummy Endpunkt.start" sind wie folgt zu betrachten:
Dummy Startpunkt.start
Der Vorgang "Dummy - Angepasst mit fit()" besitzt das gleiche Startdatum wie der Vorgang "Dummy Startpunkt", könnte aber nicht früher beginnen, da er mit der Funktion fit() zwischen diesem und dem nachfolgenden Vorgang "Dummy Endpunkt" zentriert wird. Möglich wäre auch der Parameter "Dummy Startpunkt.end" gewesen, dann hätte der Vorgang
"Dummy - Angepasst mit fit()" mit dem Enddatum von "Dummy Startpunkt" begonnen. Die Vorgangsverlinkung zwischen "Dummy Startpunkt" und "Dummy Endpunkt" besitzt einen Mindestabstand.
Dummy Endpunkt.start
Hier wird nun das Enddatum von "Dummy - Angepasst mit fit()" mit dem Anfangsdatum von "Dummy Endpunkt" versehen.
"arrangePredecessors" arrangiert alle Vorgänge die mit einer Relation auf vorangehende Zielvorgänge zeigen(wirkt wie die Funktion "Vorgänger anordnen"). Eine andere Anweisung wäre "arrangeSuccessors", dies würde die Relation auf den nachfolgenden Zielvorgang bereitstellen(wirkt wie die Funktion "Nachfolger anordnen").
Sollten falsche Eingaben getätigt werden, wird im unteren Bereich des Eingabedialogs eine Fehlermeldung ausgeworfen.
Kurz zusammengefasst nochmals die Funktionen und Erklärungen um die Abfolge zu gewährleisten.
Als erstes muss immer eine Priorität festgelegt werden, in Form einer Zahl mit einem anschliessenden Komma. Z.B.: "2,"
Die Funktionen verhalten sich wie folgt:
fit();
Ermöglicht einem Vorgang sich an Vorgängern, Nachfolgern, deren Start- und Enddatum zu orientieren und diesen Vorgang zwischen zwei anderen zu zentrieren.
Mögliche Parameter: Vorgang1.start oder Vorgang1.end/Vorgang2.start oder Vorgang2.end
dialog();
Bestimmt die Parameter der Anfangs- und Endtermine des Vorgangs und der Dauer.
Mehrere Eingaben werden durch ein "/" getrennt. Maximal können zwei Eingaben getätigt werden.
Mögliche Parameter:
Start/End/Duration
Start -> Startzeitpunkt für die Terminierung auswählbar
End -> Endzeitpunkt für die Terminierung auswählbar
Duration -> Dauer für die Terminierung auswählbar
arrangePredecessors; Bestimmt ob der Vorgänger angeordnet werden soll.
arrangeSuccessors; Bestimmt ob der Nachfolger angeordnet werden soll.
Wichtig dabei ist immer, dass jedes Statement mit einem Semikolon abgeschlossen wird.