Skip to content
Snippets Groups Projects
user avatar
Martin authored
3d9bf3a1
History

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:

  1. jna-X.Y.Z.jar von link nkgm provided herunterladen.
  2. Archiv entpacken (jar -xf jna-X.Y.Z.jar)
  3. com/sun/jna/darwin-aarch64/libjnidispatch.jnilib in ein Verzeichnis verschieben.
  4. 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:

  1. Formular fertig vorbereiten
  2. Mehr -> Exportieren -> Word-/PDF-Export
  3. Wähle als Format Word (.docx) oder Word (.doc)
  4. Häkchen beim Weiterverarbeitung -> Als Formulardatei speichern setzen
  5. Einen Dateinamen wählen (z.B. Vorlage.docx) und mit Anwenden bestätigen
  6. Danach kann Exportfenster geschlossen werden.

Plugin in Workflow einrichten.

  1. Nach dem Absenden-Ereignis einen Word-Datei befüllen Plugin einfügen
  2. Unter Dateiname wähle eine Datei, die im vorherigen Schritt eingerichtet wurde (z.B. Vorlage.docx)
  3. Unter Ablage der erzeugten Dateien muss der Dateiname .pdf Erweiterung haben, sonst kann ein beliebiger Name gewählt werden, sonst kann es beliebig sein.
  4. An der Vorhang anhängen ankreuzen
  5. Ä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%]