Intro
Enthaltene Plugins
-
WorkflowElementTrigger
: Plugin für ein Ereignis (Trigger) im Workflow. -
WorkflowElementNode
: Plugin für eine Node (Aktion) im Workflow.
Bauen
Bei dem Plugin-Bundle handelt es sich um ein Maven-Projekt:
cd ozgcloud-formcycle-plugin
mvn clean install
Die so erzeugte JAR-Datei findet sich im Hauptverzeichnis (./ozgcloud-formcycle-plugin.jar
). Dies ist eine fat-jar
mit den benötigten Abhängigkeiten und kann in FORMCYCLE hochgeladen werden. Es sollte nicht die Datei aus dem target
-Ordner genommen werden.
Entwickeln
Vorbedingungen
FC läuft bisher nur auf Java 11. Deshalb vorher eine passende Java Version setzen:
export JAVA_HOME=/opt/jdk-11
Locale Entwicklung
Server Plugin
Mittels des fc-server
-Plugin für Maven kann einfach ein Entwicklungsserver gestartet werden:
cd ozgcloud-formcycle-plugin
mvn package fc-server:run-ms-war
Wird server plugin auf MacOS gestartet, kann es zum Fehler kommen:
java.lang.UnsatisfiedLinkError: Can't load library: /Users/[USER_NAME]/Library/Caches/JNA/temp/jna155292830485359987.tmp
at java.lang.ClassLoader.loadLibrary (ClassLoader.java:2633)
at java.lang.Runtime.load0 (Runtime.java:768)
at java.lang.System.load (System.java:1837)
...
In diesem Fall muss die native Bibliothek extra installiert werden:
-
jna-X.Y.Z.jar
von link nkgm provided herunterladen. - Archiv entpacken (
jar -xf jna-X.Y.Z.jar
) -
com/sun/jna/darwin-aarch64/libjnidispatch.jnilib
in ein Verzeichnis verschieben. - Maven konfigurieren:
-Djna.boot.library.path=/path/to/lib/directory/
Jetzt kann auf http://localhost:8080/xima-formcylce zugegriffen werden.
Mit -Dport=8085
kann der Port geändert werden.
Deploy Plugin
Dabei wird automatisch das Deploy-Plugin mit in FORMCYCLE installiert. Änderungen können so auf den laufenden FORMCYCLE Server geladen werden:
mvn package fc-deploy-plugin:deploy -DfcDeployUrl=http://localhost:8080/xima-formcycle -DfcDeployToken=admin
ab version 8:
mvn fc-deploy:deploy -DfcDeployUrl=http://localhost:8080/xima-formcycle -DfcDeployToken=admin
Debug
Im Eclipse muss Java11 als Runtime Environment konfiguriert sein. Weiterhin Classpath beim Projekt prüfen.
Debug Configurations -> kop_formcycle_plugin [launch-server] -> Debug
Abhängigkeiten mit Java11 bauen
Es gibt mehrere Möglichkeiten ein Paket in mehreren Java Versionen zur Verfügung zu stellen, zB toolchain. Allerdings zieht das alles mehrere Änderungen nach sich. Wir brauchen für den Build ja nur die Java Version und ggf den Namen anpassen.
An einfachsten ist es, wenn in den Abhängigkeiten die Java Version per Variable gesetzt wird. Dann kann man es einfach per Commandline-Parameter überschreiben.
mvn -Djava.version=11 clean install
Eclipse Plugins
- "ResourceBundle Editor" kann bei Konfiguration der Properties helfen
FC Interne Architektur
Befindet man sich in der WorkflowExecutorKlasse.
Die Formularwerte sind unter:
environmentData -> formDataAdapter -> fieldValuesMap
Die Labels sind unter:
environmentData -> xForm -> xItems -> [NAME] -> propertyMap -> key="label" -> value ->
dort dann HTML Tags entfernen? TO DISCUSS
Überptragen von Formular Representation vorbereiten
Zuerst muss Exportvorlage vorbereitet werden:
- Formular fertig vorbereiten
-
Mehr -> Exportieren -> Word-/PDF-Export
- Wähle als Format
Word (.docx)
oderWord (.doc)
- Häkchen beim
Weiterverarbeitung -> Als Formulardatei speichern
setzen - Einen Dateinamen wählen (z.B.
Vorlage.docx
) und mitAnwenden
bestätigen - Danach kann Exportfenster geschlossen werden.
Plugin in Workflow einrichten.
- Nach dem Absenden-Ereignis einen
Word-Datei befüllen
Plugin einfügen - Unter
Dateiname
wähle eine Datei, die im vorherigen Schritt eingerichtet wurde (z.B.Vorlage.docx
) - Unter
Ablage der erzeugten Dateien
muss der Dateiname.pdf
Erweiterung haben, sonst kann ein beliebiger Name gewählt werden, sonst kann es beliebig sein. -
An der Vorhang anhängen
ankreuzen - Änderungen speichern
Zugewiesene Vorgangnummer anzeigen
Damit nach dem Formularübertragung die zugewiesene Vorgangnummer angezeigt wird, muss entsprechender Platzhalter (Variable) in HTML Template eingebaut werden:
[%$OZG-Cloud Plugin.RESULT.vorgangnummer%]