Job WfCheckDeadlines

Der Job WF Check Deadlines überprüft die Deadlines laufender Prozess-Instanzen ( = dem Benutzer zugeordnete Prozesse). Solche Deadlines müssen in der Prozessdefinitionen explizit definiert werden und sind speziell markierte Zustandsübergänge von einer Aktivität zur anderen. Man könnte damit z.B. modellieren, dass "der Workflow" automatisch zu einer anderen Person weiter springt, wenn die aktuelle Person die Aktivität nicht in einer definierten Zeit abarbeitet.

Nur beim Lauf des Jobs werden die Deadlines überprüft. Werden enge Deadllines gesetzt, muss der Job auch dementsprechend oft laufen. In dem folgenden Beispiel müsste der Job eigentlich zumindest alle 30 Sekunden laufen (ist zwar nicht realistisch, jedoch wäre es fachlich korrekt!)

Beispiel für eine Prozessdefinition mit Deadlines

Die folgenden Screenshots beziehen sich auf einen Prozessdefinition, die mittels JAWE (Together Workflow Editor) erstellt wurde. Hierbei wurden "Deadline Expressions" verwendet um die maximale Zeit, welche ein Vorgang dauern darf mit einer Exception zu hinterlegen. Technisch gesehen wird also nach Ablauf der Deadline eine Exception (=Ausnahmesituation) geworfen, welche in der Aktivität definiert werden muss.

job_checkdeadlines1

Im obigen Beispiel wurde eine Deadline in der Aktivität "Genehmigung" definiert. Der rote Pfeil zeigt, was passiert, wenn die Deadline bei Ablauf die zugehörige Exception (Ausnahme) auslöst. Es wird daher nach Ablauf der Deadline automatisch zur Aktivität Überarbeitung weitergeroutet!

In den Eigenschaften der Aktivität "Genehmigung" erhalten wir hierzu die Details. Man kann mehrere Deadlines definieren. In diesem Fall haben wir genau eine definiert. Dahinter verbirgt sich eine Javascriptfunktion, welche den Zeitpunkt ausrechnet, wann diese Deadline tatsächlich eintritt.

prozessdef_jobcheck_deadlines

Bei klick auf die Deadline kommt man zu folgendem Fenster, wo die Javascript Funktion näher definiert ist. In diesem Beispiel wird zum Zeitpunkt des Starts der Aktivität (sobald diese angelegt wurde, d.h. letzte Aktivität beendet wurde!) eine Anzahl von Millisekunden addiert (in diesem Fall 30000), was dann die aktuelle Deadline ergibt.

D.h.  Zeitpunkt Aktivitätsstart + 30 Sekunden

Weiters muss noch der Name der Exception definiert werden, welche im Falle der Erreichung der Deadline geworfen werden soll.

deadline

Beispiel Expression als Text:

var d = new java.util.Date();
d.setTime(ACTIVITY_ACTIVATED_TIME.getTime() + 20000);
d;

Die Transition, welche schließlich diese Deadline abfängt muss vom Typ "Exception" sein und den Namen der obig definierten Exception enthalten.

transition

Was passiert nun in diesem Beispiel?

- wenn der Genehmiger nicht innerhalb von 30 Sekunden nach Start der Aktivität genehmigt oder ablehnt, wird der Workflow and die Aktivität "Überarbeitung" weitergeleitet.

Eine detaillierte Beschreibung zu den Job-Parametern finden Sie im Kapitel Jobs