[Gratismodul] STARFACE Dokumentation erzeugen

  • Hallo Miteinander


    Ich möchte euch ein neues Modul von uns vorstellen.
    Dieser erzeugt für euch eine STARFACE Dokumentation im PDF Format.

    Das Modul enthält über 100 Parameter, um das Design des PDF's anzupassen:

    Unter anderem:

    • Ihr könnt eigene Deckblätter, sowie Seitendesigns im Hoch und Querformat hochladen
    • Die Schriftart wählen, oder eigene Schriftarten (.ttf) Dateien hochladen
    • Einen Seitenzähler hinzufügen
    • Texte auf den Seiten Platzieren
    • Wählen, welche Attribute in der Tabelle Dargestellt werden (Z.b. Beim Benutzer, ob Vorname/Nachname/Login ect.. auf der Dokumentation stehen soll.
    • Farben für Tabellenheader, Tabelleninhalt, Textelemente ect. definieren
    • Positionierung der Tabellen für die erste, sowie folgeseiten Festlegen.
    • Breite für jede individuelle Spalte festlegen
    • Horizontale/Vertikale Positionierung des Tabelleninhalts
    • Die Gesamte Konfiguration des Dokumentationsmoduls kann im Tab "Konfiguration ==> Konfiguration Exportieren/Importieren" Exportiert werden. Dies Exportiert die Modulkonfiguration inkl. Hochgeladenen Dateien, (Eigenee Deckblätter, Folgeblätter, Schriftarten usw..), so dass ihr euer eigenes Design auch auf anderen STARFACE wieder importieren könnt, und nicht jedes mal das ganze Modul konfigurieren müsst.

    Das ganze ist noch eine Beta, und der dazugehörige Wiki-Artikel ist noch nicht bereit.


    Ich würde mich aber freuen, wenn ihr das Modul ausprobiert, und mir Feedback gebt, sei es Design, Fehlende/Zusätzlich Gewünschte Informationen, oder generelle Fehler.


    Dieses Modul wird es nur ab 7.3.X geben, und ist nicht Rückwärtskompatibel!


    Downloads findet ihr auf: https://module.si-solutions.ch/

    Wiki-Artikel: http://wiki.si-solutions.ch/de…odule/Dokumentationsmodul


    //edit: Erfasste Todos:


    • Neues Standarddesign für die Benutzerdokumentation mit den Zusätzlichen Feldern.
    • Eventuell Gruppenlistendesign Anpassen, oder zweites Design ermöglichen.
    • Liste von Voicemailboxen
    • Leitungsinformationen (- Amtsholung- Landes- und Ortsvorwahl - Interne Rufnummern - Abwurfplatz - zu den einzelnen Leitungen max Verbindungen, Leitungspräfix - Notruf Infos)
    • Notrufnummern auflisten, Notrufnummernstandorte bei Telefonen anzeigen

    //Edit: Erledigte Todos:

    • Weitere Benutzerfelder: DND, Anklopfen, Angezeigte Rufnummer, Prim. interne Rufnummer, Telefone
    • Header Schriftfarbe Separat zur Normalen Tabellenschriftfarbe
    • Serverlizenzkey-Korrekt Formatieren
    • Gruppentyp bei Gruppe mitauflisten
    • bei Telefonliste true/false durch Kreuz/Haken ersetzen
    • Unsichtbare/Unbekannte Module aus der Modulliste entfernen
    • Module fehlt unterer Tabellenrand bei Spalte "Aktiv"
    • Seitenzähler für erste Seite nicht Zählen, mit Deckblatt verknüpfen, anstatt als eigene Option
    • PDF Speicherverbrauch reduzieren der Verbrauch pro Seite wurde um ca. ~80% Reduziert. (Im Testcase mit 18 Seiten, reduktion von 16MB auf 2 MB für das ganze Dokument)
    • Benutzer Recht UCC-Premium & TS-Lizenzen anzeigen
    • TS-Lizenzanzahl stimmt nicht und muss korrigiert werden.
    • Sortierungsoptionen für Tabellen
    • Eigenes Design Quer/Hochformat, prüfen ob ich im Modul auf den korrekten Boolean zurückgreifen.
    • Horizontale Positionierung auf Deckblatt Tabelle prüfen
    • Padding beim Kreuz Symbol prüfen.
    • Umleitungen für alle Benutzer/Gruppen auflisten
    • Absender, Titel, Text, PDFNamen Anpassen inkl. möglichkeit für Datum
    • Generierung leerer Seiten bei Tabellen verhindern.
    • Bei der Auflistung von Gruppen wurden leere Seiten erzeugt/Daten gingen verloren.
    • Bei der Auflsitung von Modulinstanzen wurden leeren Seiten erzeugt/Daten gingen verloren.
    • Bei der Auflistung von Benutzer/Gruppenumleitungen wurden leere Seiten erzeugt/Daten gingen verloren.
    • Neue Seite für Netzwerkinformationen


    MfG


    Fabian

  • Erste Anmerkungen:

    • Die Option "Erste Seite nicht Zählen" rausnehmen und die Einstellung stattdessen davon abhängig machen, ob "Deckblatt erzeugen" aktiviert wird oder nicht
    • Die PDF ist recht groß (5 MB für 6 Seiten)- Ich vermute mal das liegt am Default Starface Deckblatt?
    • Deckblatt:
      • Serverlizenz formatieren zu AAAAA-BBBBB-CCCCC-DDDDD
        .replaceAll("^(.{5})(.{5})(.{5})(.{5})$", "$1-$2-$3-$4").toUpperCase();
      • Wenn noch nie ein Update stattgefunden hat, steht dort 01.01.1970 -> Abfangen und durch "nie" oder "---" ersetzen
    • Benutzerliste
      • Evtl. mehr Felder anbieten wie Mailadresse, Anklopfen, Angezeigte Rufnummer, zugehörige Telefone, Admin-Rechte
    • Gruppenliste
      • Gruppentyp mit anzeigen
      • Evtl. die Darstellung ändern: Gruppenname als Überschrift, darunter Details wie Gruppenrufnummern, Gruppentyp, Anzahl aktive und gesamte Benutzer und dann erst die Liste mit den Gruppenmitgliedern
    • Telefonliste:
      • Onlinestatus "false/true" ersetzen durch "online/offline" oder "ja/nein"
    • Modulübersicht
      • da werden jede Menge Dinge mit Version "0" aufgelistet, die keine Module sind (?). Habe da Module mit den Namen "Audio", "Call", "Chat", uvm. drinstehen. Kommt das noch weg?
      • Ansonsten: Geile Übersicht! Insb. mit den Instanzen und den Rufnummern

    Viele Grüße,


    Andreas Stein
    IT Fabrik Systemhaus GmbH & Co. KG


    STARFACE Excellence PLUS Partner

    Edited once, last by andreas.stein ().

  • Hallo Fabian,


    ganz toll - schonmal vielen Dank dafür.

    Mir sind aktuell, neben den Anmerkungen von Andreas, noch 2 Dinge in den Kopf gekommen bzw. aufgefallen:

    - Die Anzahl der vergebenen TS-Lizenzen steht bei mir immer bei 0 (die Anzahl der verfügbaren passt), obwohl welche vergeben sind.

    - Wenn es eine Möglichkeit gibt, die Hintergrundfarbe der Tabellenheader zu ändern, wäre es toll, wenn es auch die Möglichkeit gibt, die Schriftfarbe zu ändern. Ansonsten klappt das alles bei hellen Hintergrundfarben, aber z.B. bei einem roten Header wäre die Schrift dann in weiß gut.


    Nochmals - herzlichen Dank !

  • Danke für das Entsprechende Feedback.


    Ich werde diese Änderungen implementieren, sobald ich zeit habe.


    Was die grösse des Dokuments angeht, arbeite ich noch daran, aktuell werden alle Seiten als einzelne PDF's generiert, und dann zu einem PDF zusammengeführt.


    Dabei hat dann jede PDF-Seite zwischen 500-1000 KB, weil sie die Custom TTF (Standardmässig Arial, 359 KB & Arial Bold 762 KB) in jede Page einzeln lädt. Und wenn man die dann Zusammenführt, werden diese Schriftart-Duplikate jedoch nicht zusammengeführt. Das Finale PDF hat dann z.b. 10x Arial und 10x Arial Bold eingebettet...


    Die Ursprüngliche Vorlage ist nämlich nur zwsichen 70-80 KB gross.


    MfG


    Fabian

  • So der erste Patch ist da.


    Folgendes wurde gefixt/geändert.

    • Weitere Benutzerfelder: DND, Anklopfen, Angezeigte Rufnummer, Prim. interne Rufnummer, Telefone
    • Header Schriftfarbe Separat zur Normalen Tabellenschriftfarbe
    • Serverlizenzkey-Korrekt Formatieren
    • Gruppentyp bei Gruppe mitauflisten
    • bei Telefonliste true/false durch Kreuz/Haken ersetzen
    • Unsichtbare/Unbekannte Module aus der Modulliste entfernen
    • Module fehlt unterer Tabellenrand bei Spalte "Aktiv"

    Weitere Todo's habe ich im ersten Post noch eingetragen.

    Der neue DL Link ist ebenfalls im ersten Post.


    Bei den TS-Lizenzen habe ich aktuell ein Problem. Die STARFACE Liefert mir die Lizenzen nicht so wie bei den Normalen/Light Usern und UCC-Lizenzen einfach aus. Die TS-Lizenzen muss man sich selbst zusammenrechnen.


    Code
    Integer TotalTerminalserverLicenses = LC.getLicensedUsersOfFeature(Features.WINCLIENT_TERMINAL_SERVER);//Bei der Lizenzkomponente Anfragen, wie viele Lizenzen vom Typ "WINCLIENT_TERMINAL_SERVER", also TS Lizenzen dass es gibt.
            Integer UsedTerminalserverLicenses=0; //Genutzte TS Lizenzen
            for(ExtendedUserData EUD : UBO.getUsers()) //Alle Benutzer der Anlage abfragen
            {
                if(EUD.getPermissions().contains(Permission.WINCLIENT_TERMINAL_SERVER)) //Wenn der Benutzer das Recht "Windows Terminalserver" hat
                {
                    UsedTerminalserverLicenses++; //Zähler+1
                }
            }    
            LicensedUsersTS = UsedTerminalserverLicenses +"/"+TotalTerminalserverLicenses; //Ergebnis zusammenbauen


    Während dies in meinem Test-Case mit NFR LIzenzen funktioniert hat, gibts es Fälle, bei denen diese Abfrage so kein Ergebnis bzw. 0 Lizenzen liefert, obwohl Terminalserverlizenzen auf der Anlage vorhanden sind. Für mich etwas unverständlich.


    Falls jemand eine Idee hat, oder eine andere Methode zum Herausfinden der TS-Lizenzen hat, wäre ich froh um input.


    MfG


    Fabian

  • Falls jemand eine Idee hat, oder eine andere Methode zum Herausfinden der TS-Lizenzen hat, wäre ich froh um input.

    Probier mal hiermit:

    Viele Grüße,


    Andreas Stein
    IT Fabrik Systemhaus GmbH & Co. KG


    STARFACE Excellence PLUS Partner

  • Hallo Fabian,


    leider funktioniert der Download-Link nicht. ;(


    Gruß Helge

    Hallo Helge


    Der Link war zwar visuell geupdatet, im hintergrund hat es aber noch auf die alte Version verwiesen.

    Habe den Link oben korrekt geupdatet.


    Probier mal hiermit:


    Hallo Andreas


    Danke dafür.

    Damit ist schonmal die Hälfte gedeckt.


    MfG


    Fabian

  • Das ist die Hälfte, die Herausfindet, wer die TS-Lizenzen nutzt.


    Meine Methode zum ermitteln der Verfügbaren TS-Lizenzen via:


    Code
    Integer TotalTerminalserverLicenses = LC.getLicensedUsersOfFeature(Features.WINCLIENT_TERMINAL_SERVER);

    Funktioniert nach mir auch nicht zuverlässig.


    Bei einem Kunden mit 40 TS Lizenzen sagt diese Abfrage dann 0. Dann habe ich in der Dokumentation 36/0 anstatt 36/40


    Aber ich hab neuerdings NFR-TS Lizenzen auf meiner Entwickleranlage, ich muss das ganze dort nochmals nachstellen.


    MfG


    Fabian

  • Sind die Lizenzen evtl. abgelaufen bei dem Kunden? :P

    Code
    LC.getLicensedUsersOfFeature(LicenseComponent.Features.WINCLIENT_TERMINAL_SERVER))

    sollte eigentlich immer funktionieren...

    Viele Grüße,


    Andreas Stein
    IT Fabrik Systemhaus GmbH & Co. KG


    STARFACE Excellence PLUS Partner

  • mach ich irgendwas falsch?


    2022-11-14 16:29:52,530] [ERROR] [] [] [IsEntryPointTriggeredbySaveChanges] An error occurred while executing of module instance Doku (STARFACE Dokumentation)Exception: java.lang.NoSuchMethodError

    Message: 'org.apache.logging.log4j.Logger de.vertico.starface.module.core.runtime.IRuntimeEnvironment.getLog()'

    ======== Functions call stack ========

    bc26dccc-32eb-403d-ac0b-367a6afa4d37(Config)

    e8ca06e4-5365-49df-bc41-2402196c9826(Call --> IsEntryPointTriggeredbySaveChanges)

    IsEntryPointTriggeredbySaveChanges(IsEntryPointTriggeredbySaveChanges)


    [2022-11-14 16:29:52,531] [ERROR] [] [] [IsEntryPointTriggeredbySaveChanges] Cause:

    java.lang.NoSuchMethodError: 'org.apache.logging.log4j.Logger de.vertico.starface.module.core.runtime.IRuntimeEnvironment.getLog()'

    at si.module.guichanges.IsEntryPointTriggeredbySaveChanges.execute(IsEntryPointTriggeredbySaveChanges.java:28)

    at de.vertico.starface.module.core.runtime.executables.JavaFunctionExec.executeImpl(JavaFunctionExec.java:141)

    at de.vertico.starface.module.core.runtime.executables.BaseExec.execute(BaseExec.java:111)

    at de.vertico.starface.module.core.runtime.LoadedModule.invokeFunction(LoadedModule.java:204)

    at de.vertico.starface.module.core.runtime.LoadedFunction.invoke(LoadedFunction.java:69)

    at de.vertico.starface.module.core.runtime.RuntimeEnvironmentImpl.invokeFunction(RuntimeEnvironmentImpl.java:228)

    at de.vertico.starface.module.core.runtime.executables.FunctionCallExec.executeImpl(FunctionCallExec.java:119)

    at de.vertico.starface.module.core.runtime.executables.BaseExec.execute(BaseExec.java:111)

    at de.vertico.starface.module.core.runtime.executables.ContainerExec.executeImpl(ContainerExec.java:77)

    at de.vertico.starface.module.core.runtime.executables.FunctionExec.executeImpl(FunctionExec.java:52)

    at de.vertico.starface.module.core.runtime.executables.BaseExec.execute(BaseExec.java:111)

    at de.vertico.starface.module.core.runtime.ModuleRuntime.callEntryPoint(ModuleRuntime.java:354)

    at de.vertico.starface.module.core.runtime.ModuleRuntime.callEntryPoint(ModuleRuntime.java:520)

    at de.vertico.starface.module.core.runtime.ModuleRuntime.callLifeCycleEntryPointsForInstance(ModuleRuntime.java:2078)

    at de.vertico.starface.module.core.runtime.ModuleRuntime.lambda$callLifeCycleEntryPointsForInstance$1(ModuleRuntime.java:2052)

    at java.base/java.lang.Thread.run(Thread.java:829)

  • Ich würd sagen, du hast nicht fertig gelesen ;)


    Quote

    Dieses Modul wird es nur ab 7.3.X geben, und ist nicht Rückwärtskompatibel!

    Viele Grüße,


    Andreas Stein
    IT Fabrik Systemhaus GmbH & Co. KG


    STARFACE Excellence PLUS Partner

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!