==== Sinn und Zweck des Bausteins ==== Oftmals werden in T!M - Task !n Motion Entscheidungen per [[software:tim:mail|E-Mail]] getroffen. Es kann jedoch gewünscht sein, diese Entscheidung auch manuell in T!M - Task !n Motion tätigen zu können. Zum Beispiel falls Entscheider welcher die [[software:tim:mail|E-Mail]] bekommt nicht auf diese Mail reagieren kann. In diesem Baustein wird die Implementierung einer Entscheidung per [[software:tim:mail|E-Mail]] sowie manuell erläutert. ----- ==== Was benötige ich im Prozess an Aktivitäten und Gateways? ==== Aktivitäten und Gateways welche für die Implementierung benötigt werden: *[[software:tim:mailnode|Mailnode]] an Entscheider *Task zum manuellen erledigen *XOR Gateway (2x öffnend, 1x schließend) *Verbindungslinien *Start- & Endknoten ----- ==== Was benötige ich an [[software:tim:actionhandler|Actionhandlern]] und Webservices? ==== Actionhandler welche für die Implementierung benötigt werden: *Actionhandler: [[software:tim:actionhandler:VariableDecisionHandler|SmartFormDecissionHandler]] *Actionhandler: [[software:tim:actionhandler:processvariablesetter|ProcessVariableSetter]] (2x) *Webservice: [[software:tim:timer:setprocessvariableandsignalprocessinstancebytransitionname|setProcessVariableAndSignalProcessInstanceByTransitionName]] ----- ==== Einbindung ==== {{ :software:tim:bausteine:entscheidung_per_e-mail_und_humandecision.png?800 |}} ==Mailnode== Die Mailnode benötigt neben dem Text die Links um freizugeben oder abzulehnen. Diese setzen sich wie folgt zusammen: http://URL des Servers/loom-portal/ProcessInstanceManager/setProcessVariableAndSignalProcessInstanceByTransitionName.soap?args[0]=${processInstanceId}&args[1]=freigabe&args[2]=true&args[3]=Manuell_entscheiden&args[4]=freigabe&i=1&uid=eWl0L3BtOnRhc2shbm1vdGlvbg http://URL des Servers/loom-portal/ kann ab [[software:tim:changelog:tim35|T!M Version 3.5]] durch ${baseLink} ersetzt werden. Die Parameter des Links: *args[0]: Prozessinstanz ID des Prozesses. Dieser Parameter kann so übernommen werden *args[1]: Variablenname welcher gesetzt werden soll *args[2]: Wert welcher in die Variable geschrieben werden soll *args[3]: Name der Aktivität welche gesignalled werden soll (Im Beispielbild "Manuell_entscheiden") *args[4]: Technisch eindeutige Bezeichnung der Transition welche aus der gesignallten Aktivität austritt *uid: Logindaten für T!M Base64 kodiert (mandant/user:passwort) >Achtung: Es wird zusätzlich noch ein Link zum Ablehnen benötigt. Hierbei ändert sich nur Parameter 2 (args[2]). >Achtung: Die ausgehende Transition aus der Aktivität "Manuell_entscheiden" benötigt eine technisch eindeutige Bezeichnung. Im Beispiel "freigabe". ==Tasknode== Aktivität welche beim Aufruf des Links gesignalled werden soll. Diese Aktivität benötigt eine Aufgabe wie zum Beispiel "Entscheiden Sie manuell". Die ausgehende Transition dieser Aktivität benötigt eine Technisch eindeutige Bezeichnung (Im Beispiel "freigabe"). ==Erstes XOR== Auf dem ersten XOR wird ein [[software:tim:actionhandler:VariableDecisionHandler|SmartFormDecissionHandler]] mit einer defaultTransition, für die manuelle Entscheidung, auf das zweite XOR gelegt. Dieses XOR entscheidet anhand der im Link gesetzten Variable. Je nach gesetzem Wert wird der "Freigabe per Mail", "Ablehnung per Mail" oder "Manuelle Freigabe" Weg gewählt. ==Zweites XOR== Hier wird kein [[software:tim:actionhandler|Actionhandler]] benötigt. Dieses XOR wird nur erreicht, falls die Aufgabe "Manuell_entscheiden" von Hand abgehakt wurde und somit keine Prozessvariable über den Link gesetzt werden konnte. Wird dieses XOR erreicht, popt in T!M ein Dialog auf, in dem der Bearbeiter über den weiteren Prozessverlauf entscheiden kann. Je nach getätigter Auwahl wird eine der Scriptnodes angesteuert. ==Die Scriptnodes== Auf den Scriptnodes der manuellen Entscheidung wird ein [[software:tim:actionhandler:processvariablesetter|ProcessVariableSetter]] hinterlegt, welcher die Variablen aus dem Link je nach dem setzt. Dies dient zur späteren Dokumentation des Prozessverlaufs.