======= VariableDecisionHandler ======= Ehemals der SmartFormDecissionHandler. Wurde mit [[software:tim:changelog:tim40|Version 4.0]] umbenannt, kann aber trotzdem noch unter com.dooris.bpm.actionhandler.SmartFormDecissionHandler aufgerufen werden. ==== Beschreibung ==== Dieser [[software:tim:actionhandler|Handler]] entscheidet, abhängig von [[software:tim:process_variables|Prozessvariablen]], welchen Weg der Prozess nach einem XOR-Gateway ausführt. ----- ==== Klasse ==== com.dooris.bpm.actionhandler.VariableDecisionHandler \\ ---- ==== Attributes des XOR-Gateways ==== == processVariable == Name der im Smartform hinterlegten Prozessvariable aufgrund deren Wert ein Prozesspfad eingeschlagen wird. == defaultTransition == Mit der defaultTransition wird festgelegt, welcher Prozesspfad eingeschlagen wird, wenn die Prozessvariable nicht definiert ist. == Action Name == Der Name des Actionhandler kann beliebig gewählt werden. ==== Attributes der ausgehenden Sequenzflüsse ==== == Bedingungsausdruck == Der Bedingungsausdruck kann beliebig gewählt werden, sollte aber zur Entscheidung passen (z.B. Status des Antrags? Bedingungsausruck 1: Angenommen. Bedingungsausruck 2: Abgelehnt) == ID == Die ID ist der in der Smartform hinterlegte Wert der Prozessvariable (value="ID") ---- ==== Beispiel Kundenumfrage ==== Im Folgenden wird der variableDecisionHandler anhand des Beispiels einer TIM-Kundenumfrage erläutert. Dabei werden die einzelnen Schritte bis zur Benutzung des Handlers detailliert beschrieben. Mit der TIM Kundenumfrage können Benutzer ihre Version von TIM bewerten. Mit dem variableDecisionHandler wird während des Prozessdurchlaufs abgefragt, ob der Teilnehmer die Umfrage anonym bzw. personalisiert ausgefüllt hat. Basierend auf dieser Entscheidung erfolgt der weitere Prozessverlauf (s. Screenshot). {{:software:tim:actionhandler:variableDecisionHandler3.PNG?600 }}{{ :software:tim:actionhandler:variableDecisionHandler4.PNG?600 }} Der variableDecisionHandler wird in der verwendeten Modellierungssoftware in einem XOR-Gateway gesetzt. Dabei müssen neben der Handler-Klasse verschiedene Parameter hinterlegt werden. Die Parameter verweisen auf die in der Smartform hinterlegten Input-Felder. Bei einem XOR-Gateway ist das Input-Feld in der Regel ein Radiobutton. Ein gern gewähltes Beispiel ist das Annehmen bzw. Ablehnen von Anträgen. {{:software:tim:actionhandler:variableDecisionHandler5.PNG}} Unter **processVariable** wird der Name des zu betrachtenden Input-Feldes angegeben (name="helper"). Anschließend wird festgelegt, bei welchem Wert welcher Prozesspfad eingeschlagen werden soll. Der **Ausgang Nein** wird ausgewählt, wenn ein Teilnehmer der Kundenumfrage keine persönlichen Angaben macht, d.h. der Radiobutton mit dem Wert **noemail** ausgewählt wurde (value="noemail"). Gibt ein Teilnehmer seine persönlichen Daten an, wird der Radiobutton mit dem Wert **email** ausgewählt (value="email") und somit **Ausgang Ja** benutzt. In der **defaultTransition** wird angegeben, welcher Prozesspfad eingeschlagen werden soll, falls die Prozessvariable, in diesem Fall "helper", nicht definiert ist. Hier wird wieder der Wert des gewünschten Radiobuttons hinterlegt. {{:software:tim:actionhandler:variableDecisionHandler2.PNG}} Der folgende Screenshot zeigt den relevanten Ausschnitt der Smartform der Kundenumfrage. Beachten Sie die zwei Radiobutton mit dem Namen **helper** (name="helper") und den Werten **email** bzw. **noemail**. Diese beiden Input-Felder sind, wie oben beschrieben, für den weiteren Prozessverlauf ausschlaggebend. {{:software:tim:actionhandler:variableDecisionHandler1.PNG}} ==== Spezialfall Domrepeater ==== Mit dem Domrepeater können einer Smartform Input-Felder zur Laufzeit hinzugefügt werden. Prominentestes Beispiel ist das Hinzufügen weiterer Zeilen in einer Tabelle. Der Domrepeater kann sich folglich auf das Input-Feld bzw. die Prozessvariable beziehen, auf die der variableDecisionHandler verweist. Um nicht für jede, durch den Domrepeater erzeugte Prozessvariable einen neuen variableDecisionHandler anlegen zu müssen, verfügt der variableDecisionHandler über die folgenden beiden Parameter. == repeat == Unter repeat wird ein Zähler hinterlegt, der die Summe der, durch den Domrepeater generierten Ausprägungen der Prozessvariable enthält. ==variableNameRepeating == variableNameRepeating enthält den Namen der zu wiederholenden Prozessvariable. {{:software:tim:actionhandler:variableDecisionHandler6.PNG}}