Autoren der Dokumentation: Björn Scheppler
Dokumentation letztmals aktualisiert: 30.12.2018
Maven-Projekt für eine Camunda Prozessapplikation, in welchem Mitarbeiter Texte vorschlagen können, welche nach erfolgreicher Prüfung durch die Kommunikationsabteilung auf Twitter veröffentlicht werden.
Dieses Projekt ist eine stark erweiterte Version des Camunda Quickstart-Beispiels. Erarbeitet am Institut für Wirtschaftsinformatik an der ZHAW School of Management and Law im Rahmen des Bachelor-Studiengangs Wirtschaftsinformatik im Modul Geschäftsprozessintegration.
Um dieses Projekt nachzubauen, gibt es eine Schritt-für-Schritt-Anleitung als PDF im Ordner \src\docs.
- Spring Boot-Applikation mit Tomcat Server, usw.
- Camunda Process Engine, REST API und Webapps (Tasklist, Cockpit, Admin)
- H2-Datenbank für die Camunda Process Engine
- Email-Versand
- Prozess zur Verarbeitung von Tweet-Anfragen bestehend aus:
- BPMN-Modell
- Generierte HTML Formulare für:
- Startformular (gewünschten Tweet-Text erfassen)
- User Task "Tweet-Anfrage prüfen"
- User Task "Tweet-Anfrage überarbeiten"
- Service Task Benutzer-Informationen auslesen aufrufend:
- GetUserInformationDelegate-Klasse, welche ein User-Objekt basierend auf dem Benutzernamen ermittelt...
- ... über eine UserService-Klasse, die ihrerseits wiederum per REST auf ...
- ... einen User Service zugreift -> separates Projekt hier
- Service Task Tweet senden aufrufend:
- SendTweetDelegate-Klasse, welche den gewünschten Tweet-Text veröffentlicht, ...
- ... über die Nutzung einer TwitterService-Klasse, welche ihrerseits per Spring Social Twitter auf die Twitter REST API zugreift.
- Service Task Mitarbeiter benachrichtigen aufrufend:
- NotifyEmployeeDelegate-Klasse, welche den Mitarbeiter bei Genehmigung oder Ablehnung per Mail benachrichtigt ...
- ... über eine EmailService-Klasse, welche ihrerseits über Spring Boot Starter Mail eine Mail versendet.
- Angeheftete Zeitzwischenereignisse an die User Tasks, welche nach 3 Tagen Inaktivität dazu führen, dass der Mitarbeiter benachrichtigt und der Prozess beendet wird.
- Test Package: Achtung, dieses funktioniert nicht mit der fertigen Lösung, sondern nur, wenn man der Anleitung Schritt-für-Schritt in src\docs folgt. Daher ist im pom.xml die skipTests-Property auf true gesetzt.
- Wenn man die Enterprise Edition von Camunda verwenden will, benötigt man die Zugangsdaten zum Nexus Repository und eine gültige Lizenz. Wie man diese "installiert", steht in den Kommentaren im pom.xml.
- Erstmalig oder bei Problemen ein Clean & Build (Netbeans), respektive
mvn clean install
(Cmd) durchführen - Bei Änderungen am POM-File oder bei (Neu)kompilierungsbedarf genügt ein Build (Netbeans), respektive
mvn install
- Damit der Mail-Versand funktioniert, ist der Bereich # Mail-Konfiguration in application.properties anzupassen und/oder die dort aufgeführten Umgebungsvariablen zu setzen.
- Damit die Kommunikation mit Twitter funktioniert, muss eine twitter.properties-Datei angelegt werden in src\main\ressources mit den Zeilen: twitter.consumerKey= twitter.consumerSecret= twitter.accessToken= twitter.accessTokenSecret=
- Für den Start ist ein Run (Netbeans), respektive
java -jar .\target\NAME DES JAR-FILES.jar
(Cmd) erforderlich. - Das Beenden geschieht mit Stop Build/Run (Netbeans), respektive CTRL+C (Cmd)
- Falls man die bestehenden Prozessdaten nicht mehr benötigt und die Datenbank inzwischen recht angewachsen ist, genügt es, die Datei DATENBANKNAME.mv.db im Wurzelverzeichnis des Projekts zu löschen.
- http://localhost:8080 aufrufen
- Anmelden mit Benutzername a und Passwort a
- Tasklist öffnen (und in einem separaten Tab das Cockpit)
- "Start Process" > "Verarbeitung von Tweet-Anfragen"
- Nun wird man durch den Prozess geführt. Folgende Hinweise:
- Die E-Mail-Adresse wird aus dem UserService ausgelesen, daher dort sinnvolle Testdaten setzen.
- Bei "Tweet-Anfrage" prüfen ist ein Claim erforderlich, da bewusst jede Person aus der Kommunikationsabteilung, die Aufgabe ausführen können soll. Der Nutzer a hat als Admin Zugriff auf alle Aufgaben. PS: Selbst wenn man einen zusätzlichen Nicht-Admin-Benutzer erstellt und diesen nicht der Gruppe kommunikationsabteilung zuweist, sieht er trotzdem alle Aufgaben für diese. Grund: Authorisierung ist standardmässig deaktiviert => Jeder Benutzer hat alle Rechte.
- Wenn man zu lange wartet, bevor man einen User Task erledigt, kann es sein, dass dieser Task gelöscht wird wegen dem angehefteten Zeitereignis.
- Im Camunda Cockpit kann man bei Bedarf den Prozessfortschritt und mehr verfolgen
- Um auf die Datenbankverwaltungs-Umgebung zuzugreifen, http://localhost:TOMCAT_PORT/console eingeben.
- Anmeldung über:
- Benutzername sa
- Passwort: leer lassen
- URL jdbc:h2:./DATENBANKNAME_GEMAESS_APPLICATION.PROPERTIES
Die Process Engine kann auch per REST API gesteuert werden. Hierzu die Dokumentation unter https://docs.camunda.org/manual/latest/reference/rest/ lesen. Wegen Spring Boot ist die URL für die REST API minimal anders als in der Dokumentation beschrieben. Sie ist: http://localhost:TOMCAT_PORT/rest/. So gibt z.B. http://localhost:TOMCAT_PORT/rest/engine den Namen der Engine (default) zurück.