====== PredefinedDecisionHandler ====== ==== Beschreibung ==== Der PredefinedDecisionHandler wird für die [[software:tim:prozessSteuerung|Steuerung eines Prozess]] eingesetzt. D.h. für jedes XOR-Gateway der Prozessinstanz kann bereits im Voraus festgelegt werden, welcher Ausgang verfolgt wird. Wie im folgenden Beispiel zu sehen ist, kann der Prozessverlauf auch anhand des ersten XOR-Gateways vorbestimmt werden. Alle nachfolgenden XOR-Gateways verhalten sich der ersten Entscheidung entsprechend. ------ ==== Klasse ==== com.dooris.bpm.actionhandler.PredefinedDecisionHandler \\ ---- ==== Attribute des XOR-Gateway ==== === variableName === Hier wird ein beliebiger Variablenname hinterlegt. Wird in jedem XOR-Gateway die gleiche Variable verwendet, wird für jedes XOR-Gateway, der in der Prozesssteuerung festgelegte Ausgang gewählt (s. Beispiel). === Durchlauf des Prozesses in TIM === Nachdem die erste Aktivität === Ausgänge === Für die Ausgänge des XOR-Gateways sollten aussagekräftige Namen definiert werden. Die IDs **müssen** hingegen angegeben werden. ---- ==== Beispiel- Produktionsprozess ==== Das folgende Beispiel zeigt einen fiktiven Prozess zur Herstellung von Leuchtmitteln. Während der Produktion werden entweder Stehleuchten oder Schreibtischleuchten hergestellt. Mit dem PredefinedDefinitionHandler kann bereits mit dem ersten XOR-Gateway der gesamte weitere Verlauf des Prozesses gesteuert werden. {{software:tim:actionhandler:predefinedDecisionHandler.png}} === Einsetzen des Handlers === Der PredefinedDecisionHandler wird, ähnlich wie der [[software:tim:actionhandler:variabledecisionhandler|VariableDecisionHandler]], in einem XOR-Gateway gesetzt. Die ActionHandler-Klasse wird in das Textfeld **Handler** geschrieben. Wie bereits oben beschrieben, benötigt der Handler den Parameter **variableName**, der im vorliegenden Beispiel den Wert **Modell** beinhaltet (s. Screenshot). Der Wert von variableName kann beliebig gewählt werden, sollte aber möglichst aussagekräftig sein. Abschließend müssen die Ausgänge des XOR-Gateways definiert werden. Hier empfiehlt es sich wieder Ausdrücke zu wählen, die den zu verfolgenden Prozesspfad beschreiben. Im Fall des Leuchtmittelproduktionsprozesses wurde **Stehleuchte** und **Schreibtischleuchte** gewählt. {{software:tim:actionhandler:predefinedDecisionHandler3.png}} === Anpassen weiterer XOR-gateways === Um zu gewährleisten, dass der Prozessverlauf mit dem ersten XOR-Gateway gesteuert werden kann, muss das zweite XOR-Gateway ebenfalls angepasst werden. Im Leuchtmittelproduktionsprozess soll entweder eine Stehleuchte oder eine Schreibtischleuchte hergestellt werden. Das zweite XOR-Gateway erhält folglich die gleichen Parameter, wie das erste XOR-Gateway (s. Screenshot). {{software:tim:actionhandler:predefinedDecisionHandler3.png}} ---- === Prozesssteuerung in TIM === {{software:tim:actionhandler:predefinedDecisionHandler4.png}} \\ Nach dem Prozessstart muss im Prozessmanager Client unter [[software:tim:prozessSteuerung|Prozesssteuerung]] festgelegt werden, welcher Prozesspfad eingeschlagen wird. Im Beispiel des Leuchtmittelproduktionsprozesses wird folglich bestimmt, ob eine Steh- oder eine Schreibtischleuchte erstellt wird. {{software:tim:actionhandler:predefinedDecisionHandler2.png}} \\ Erreicht der Prozess das zweite XOR-Gateway wird die gleiche Entscheidung, wie beim ersten Gateway getroffen. ==== Spezialfall: Mehrere Entscheidungen ==== In einer neuen Version des Leuchtmittelproduktionsprozesses gibt es sowohl Stehleuchten mit 100W Birnen und großem Standfuß als auch mit 60W Birnen und kleinem Standfuß. Folglich werden dafür zwei weitere XOR-Gateways benötigt. {{software:tim:actionhandler:predefinedDecisionHandler5.png}} \\ Die beiden neuen XOR-Gateways werden per PredefinedDecisionHandler verbunden, die Entscheidung über der Größe der Lampe wirkt sich somit auch auf die Wahl des Standfußes der Leuchte aus. === Prozesssteuerung in TIM === Im Reiter Prozesssteuerung müssen folglich zwei Variablen belegt werden **Modell** und **Groesse** (s. Screenshot). {{software:tim:actionhandler:predefinedDecisionHandler6.png}}