Newer
Older
# 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:
```bash
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.
FC läuft bisher nur auf Java 11. Deshalb vorher eine passende Java Version setzen:
## Locale Entwicklung
### Server Plugin
Mittels des `fc-server`-Plugin für Maven kann einfach ein Entwicklungsserver gestartet werden:
```bash
cd ozgcloud-formcycle-plugin
mvn package fc-server:run-ms-war
```
Wird server plugin auf MacOS gestartet, kann es zum Fehler kommen:
```java
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](https://github.com/java-native-access/jna#jna) 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](http://localhost:8080/xima-formcylce) zugegriffen werden.
Mit `-Dport=8085` kann der Port geändert werden.
Dabei wird automatisch das Deploy-Plugin mit in FORMCYCLE installiert. Änderungen können so auf den laufenden FORMCYCLE Server geladen werden:
```bash
mvn package fc-deploy-plugin:deploy -DfcDeployUrl=http://localhost:8080/xima-formcycle -DfcDeployToken=admin
```
ab version 8:
```bash
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%]
```