Im ersten Teil dieses Beitrags habe ich euch den sogenannten Happy-Path beschrieben. Nun sollten wir uns noch anschauen, wie ein sogenannter User Task mit in den Prozess eingebaut werden kann.
Buchung eines Kurses

Schauen wir uns nun zunächst nochmals den gesamten Prozess an. In der Mitte ist ein Gateway zu sehen, welches prüft, ob Rabatte für eine Buchung vergeben wurden. Genauer gesagt wird die Prüfung an dem Sequence Flow notiert, das ist der Pfeil zwischen dem Gateway und dem User Task für die manuelle Prüfung der Rabatte.

Auch hier können wir die Expression Language verwenden. Wenn auf einer Buchung also ein rebate existiert, dann wird dieser Weg durchlaufen. Analog dazu ist am Sequence Flow vom Gateway zur Buchungsbestätigung natürlich ein entsprechender EL-Ausdruck notiert worden.
Arbeiten mit der Tasklist
CIB seven liefert drei Anwendungen mit, über die sowohl administrative Aufgaben, als auch eine Arbeit mit laufenden Prozessen möglich ist. Über die sogenannte Tasklist lassen sich nun manuelle Aufgaben abrufen, die innerhalb einer Prozessinstanz erledigt werden müssen.

Um den Rahmen dieses Beitrages nicht zu sprengen, habe ich darauf verzichtet in diesem User Task die notwendigen Formularfelder einzublenden. Hier müsste natürlich der ermittelte Rabatt als Variable angezeigt werden, damit der Bearbeiter diesen dann auch entsprechend anpassen könnte.
Eine weitere Möglichkeit im Jakarta EE Umfeld besteht darin für diese Aufgaben eine eigene Oberfläche mit Jakarta Faces bereitzustellen. Diese würde in ähnlicher Weise wie die mitgelieferte Tasklist implementiert sein können.
Fazit
Die Realisierung von Prozessanwendungen mit Hilfe einer Workflow-Engine bzw. eines Business Prozess Management Systems wie CIB seven kann mit Jakarta EE einfach umgesetzt werden. Der große Vorteil dieses Ansatzes ist die Trennung der technischen Umsetzung von der eigentlichen Ausführung des Prozesses.
Das Projekt findet ihr wie immer auf GitHub.