==== Sinn und Zweck des Bausteins ==== Der Hauptprozess soll aus dem Subprozess beendet werden können. Hierfür wird im Subprozess entschieden (mittels XOR-Gateway), ob der Hauptprozess nach Beenden des Subprozesses, beendet wird oder weitergeführt werden soll (wiederum mittels XOR-Gateway). ==== Was benötige ich an Actionhandlern? ==== **Im Subprozess** werden am Entscheidungspunkt zwei Handler benötigt: 1. Auf Node-Enter wird mit dem [[:software:tim:actionhandler:processvariablesetter|ProcessVariableSetter]] eine Prozessvariable gesetzt. Für jede Entscheidung wird darin ein anderer Inhalt gesetzt. **Handlerklasse:** com.dooris.bpm.actionhandler.ProcessVariableSetter **Parameter zum Fortführen des Prozesses:** name=prozessBeenden;value=Ja; **Parameter zum Beenden des Prozesses:** name=prozessBeenden;value=Nein; {{ :software:tim:bausteine:sp_stops_hp_1.png?300}}{{ :software:tim:bausteine:sp_stops_hp_2.png?300}} 2. Auf Node-Leave wird die gesetzte Variable mit dem [[:software:tim:actionhandler:writebackprocessvariablehandler|WriteBackProcessVariableHandler ]]an den Hauptprozess übergeben. **Handlerklasse:** com.dooris.bpm.actionhandler.WriteBackProcessVariableHandler **Parameter:** includedVariables=prozessBeenden; ---- **Im Hauptprozess** wird, unmittelbar auf den Subprozess folgend, eine XOR-Entscheidung benötigt, um die vom Subprozess übergebene Variable zu überprüfen. Abhängig vom Wert der Variable wird hier nun entschieden, welchen Weg der Prozess einschlagen soll. Dazu wird der [[:software:tim:actionhandler:variabledecisionhandler|VariableDecisionHandler]] in einem XOR verwendet. {{ :software:tim:bausteine:sp_stops_hp_3.png?300}} com.dooris.bpm.actionhandler.VariableDecisionHandler **Parameter** ^Name^Value| |defaultTransition|Nein| |processVariable|prozessBeenden| Die Angabe der "defaultTransition" ist optional. Damit wird die der weitere Prozessverlaufs bestimmt, falls keine manuelle Entscheidung getroffen wurde.\\ \\ Nun müssen den Ausgängen die IDs zugewiesen werden, damit der Prozess den jeweiligen Weg einschlagen kann. Die IDs entsprechen dabei den im Subprozess vergebenen Inhalten ("Ja" oder "Nein") der Variable "prozessBeenden" (siehe oben). **Ausgänge** ^Name^ID| |Nein|Nein| |Ja|Ja| Daraufhin kann der Prozess deployed und gestartet werden. iGrafX Prozesse:\\ **Hauptptrozess** {{:software:tim:bausteine:hp_wiki_43_igx.zip|hp_wiki_43_igx.zip}} \\ **Subprozess** {{:software:tim:bausteine:sp_wiki_43_igx.zip|sp_wiki_43_igx.zip}} \\