Beim ersten Hochfahren der Anwendung werden Workflows, die im Ordner ".../src/main/webapp/WEB-INF/workflow" abgelegt sind, automatisch hochgeladen.
Erweiterung:
Wenn bei einem Re-Deployment eine neue Version dieser Dateien ausgeliefert wird, sollen diese Workflows automatisch beim initialen Start der neuen Version aktualisiert werden, ähnlich zu den Rollenprofilen (#28931).
Umsetzung
Für jeden Workflow wird ein Hash des Inhalts gespeichert. Wenn sich der Inhalt ändert wird der Workflow neu eingespielt.
DataMigration
Beim Booten werden die Hashes der bereits eingespielten Workflows aktualisiert. Es findet kein Update des Workflows statt! Wenn das gewünscht ist muss in einer Migration zuerst der gespeicherte Wert "loaded" durch einen Hash ersetzt werden der nicht der aktuellen Datei entspricht:
- Migrationsdatei erstellent mit dem Migrationsprocessor {{{
<update-tl-properties property="initial-workflow.<resource>" value="<wf-name>:XXX" /> }}}
- hierbei ist <resource> der Name der Resource unterhalb von "/WEB-INF/workflow/" in der der initiale WF definiert ist. Ist der WF z.B. in der Datei "/WEB-INF/workflow/Ticketsystem.bpml.xml" definiert ist <resource> Ticketsystem.bpml.xml.
- hierbei ist <wf-name> der Name des WF wie er in der Datei angegeben ist. Ist hier keiner angegeben, dann ist es der Name der Datei bit zum ersten ".". So ist der Name für den WF in "/WEB-INF/workflow/Ticketsystem.bpml.xml" Ticketsystem.
- "XXX" steht hier für den "alten Hash". Da die Datei einen Hash != XXX hat wird der WF aktualisiert,
Test
- Im Demo nach dem ersten Starten den Workflow Ticketsystem.bpml.xml anpassen und die Anwendung neu starten
- Erwartung: Der Workflow Ticketsystem.bpml.xml wird neu importiert.