Skip to content
Snippets Groups Projects
README.md 4.52 KiB
Newer Older
  • Learn to ignore specific revisions
  • OZGCloud's avatar
    OZGCloud committed
    
    # 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.
    
    
    # Entwickeln
    
    OZGCloud's avatar
    OZGCloud committed
    
    
    ## Vorbedingungen
    
    OZGCloud's avatar
    OZGCloud committed
    
    FC läuft bisher nur auf Java 11. Deshalb vorher eine passende Java Version setzen:
    
    OZGCloud's avatar
    OZGCloud committed
    ```bash
    export JAVA_HOME=/opt/jdk-11
    ```
    
    OZGCloud's avatar
    OZGCloud committed
    
    
    ## Locale Entwicklung
    ### Server Plugin
    
    OZGCloud's avatar
    OZGCloud committed
    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
    ```
    
    OZGCloud's avatar
    OZGCloud committed
    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/` 
    
    
    OZGCloud's avatar
    OZGCloud committed
    
    Jetzt kann auf [http://localhost:8080/xima-formcylce](http://localhost:8080/xima-formcylce) zugegriffen werden.
    
    Mit `-Dport=8085` kann der Port geändert werden.
    
    OZGCloud's avatar
    OZGCloud committed
    
    
    ### Deploy Plugin
    
    OZGCloud's avatar
    OZGCloud committed
    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
    ```
    
    OZGCloud's avatar
    OZGCloud committed
    
    
    ### 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
    
    OZGCloud's avatar
    OZGCloud committed
    
    
    ### 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` ![](static/export-1.png)
    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  ![](static/export-2.png)
    6. Danach kann Exportfenster geschlossen werden.
    
    Plugin in Workflow einrichten.
    1. Nach dem Absenden-Ereignis einen `Word-Datei befüllen` Plugin einfügen ![](static/plugin-0.png)
    2. Unter `Dateiname` wähle eine Datei, die im vorherigen Schritt eingerichtet wurde (z.B. `Vorlage.docx`) ![](static/plugin-1.png)
    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 ![](static/plugin-2.png)
    
    5. Änderungen speichern
    
    ### Zugewiesene Vorgangnummer anzeigen
    
    
    OZGCloud's avatar
    OZGCloud committed
    Damit nach dem Formularübertragung die zugewiesene Vorgangnummer angezeigt wird, muss entsprechender Platzhalter (Variable) in HTML Template eingebaut werden:
    
    ```
    [%$OZG-Cloud Plugin.RESULT.vorgangnummer%]
    ```