Im Folgenden finden Sie Hinweise für das Customizing und die Weiterentwicklung der OpenXRechnungToolbox. OpenXRechnungToolbox ist eine Open Source Software, die sich selbst ausschließlich verschiedener Open Source Bibliotheken bedient. Daher haben Sie die Möglichkeit, den Quellcode der Software zu beziehen und diesen unter Einhaltung der Lizenzbedingungen selbständig weiterzuentwickeln. Da Open Source Projekte von der Mitarbeit vieler Leben, freue ich mich, wenn Sie Ihre Optimierungen und Weiterentwicklungen auch wieder frei und öffentlich verfügbar machen.
Die OpenXRechnungToolbox kann über zwei Mechanismen gecustomized werden, ohne, dass der Quellcode verändert werden muss. Die Software nutzt dafür einnerseits eine Konfigurationsdatei und andererseits Sprachdateien.
Die Konfigurationsdatei finden Sie unter: resources/app.config. Es handelt sich hierbei um eine gewöhnliche Textdatei nach dem key=value Schema. In dieser Konfigurationsdatei sind vor allem Speicherpfade verschiedener Grafiken/Icons für die Benutzeroberfläche sowie die verfügbaren Sprachen als auch die Versionen des Prüftools mit den entsprechenden Speicherpfaden und die Konfiguration für die Visualisierungskomponente hinterlegt.
Sie können hier z.B. eine neue Sprachen registrieren.
Dazu erweitern Sie die kommagetrennte Liste der Spachkürzel im Key available_languages um die entsprechende zusätzliche Sprache und legen die neuen Sprachdatei im Pfade
resources/languages mit dem Datennamensschema: AppWindow_
Eine zusätzliche Version des Prüftools machen Sie wie folgt verfügbar:
Im Pfad resources/validatorxrechnung legen Sie einen neuen Unterordner für die neuen Prüftoolkonfigurationendateien an und legen diese darin ab.
Im Key available_valiVersions fügen Sie in der kommagetrennten Liste einen neuen Wert für die neue Konfiguration hinzu.
Nun fügend Sie folgende neue Keys mit den entsprechenden Speicherpfaden hinzu (ggf. können die Pfade variieren, z.B. wenn neue Syntaxversionen genutzt werden):
validator.scenario.
validator.cii.xsd.
validator.ubl.xsd.
validator.ublcn.xsd.
Die jeweils genutzte Version der Prüftoolkonfiguration ist im Key valiVersion eingetragen. Sie kann hier händisch in der Datei geändert werden oder über die Benutzeroberfläche im Menü Einstellungen.
Die mit der Software ausgelieferten Prüftoolkonfigurationen besitzen eine kleine Anpassung zur besseren Darstellung der Umbrüche im mitgelieferten Browser.
Hierzu wird in der Datei
.metadata dt {
float: left;
width: 230px;
clear: left;
}
die Breite auf 250px erhöht.
Die Einstellungen für die Visualisierung sind hier zu finden:
viz.intermediate.ubl.xsl=resources/viewer/ubl-invoice-xr.xsl
viz.intermediate.ublcn.xsl=resources/viewer/ubl-creditnote-xr.xsl
viz.intermediate.cii.xsl=resources/viewer/cii-xr.xsl
viz.html.xsl=resources/viewer/xrechnung-html.xsl
Soll eine andere Version der Visualisierung genutzt werden, können entweder hier andere Speicherpfade angegeben werden oder unter den angegebenen Speicherpfaden die Dateien ausgetauscht werden.
Die Einstellung, ob die Codelisten aufgelöst werden sollen findet sich im Key viz.codelistresolve.
Dazu sind entsprechend eigene Speicherpfade für die adaptierte VIsualisierungskomponente registriert:
viz.intermediate.ublcn.xsl.codelistresolve=resources/viewer/codelistresolve/ubl-creditnote-xr.xsl
viz.intermediate.ubl.xsl.codelistresolve=resources/viewer/codelistresolve/ubl-invoice-xr.xsl
viz.intermediate.cii.xsl.codelistresolve=resources/viewer/codelistresolve/cii-xr.xsl
Die HTML-Auflösung ist Codelisten-neutral. Daher gibt es keinen zusätzlichen Key für viz.html.
Die Codelistenauflösung ist ein eigenständiges Projekt, ebenfalls von Dr. Jan C. Thiele. Dieses Projekt hat eine eigene Dokumentation, die hier zu finden ist: Projekt Codelistenauflösung.
Ergänzend kann bei der Visualisierung die Ausgabesprache gewählt bzw. neue Sprachen hinzugefügt werden. Die Einstellung findet sich im Key viz.language. Soll eine weitere Sprache ergänzt werden, so ist eine entsprechende Sprachdatei im Ordner resources/viewer/l10n anzulegen, in den Dateien xr-content.xsl und xrechnung-html.xsl Einträge für decimal-format vorzunehmen sowie im Key available_vizLanguages das Sprachkürzel zu ergänzen.
Die vorliegenden Hilfedateien sind im Speicherpfade resources/help abgelegt. Dort können die HTML-Dateien angepasst werden, z.B. wenn Weiterentwicklungen der Toolbox vorgenommen wurden.
In der Datei resources/log4j2.xml können das Logging der Toolbox konfiguriert werden. Dieses basiert auf der Java-Bibliothek log4j mit den entsprechenden Konfigurationsmöglichkeiten.
Die OpenXRechnungToolbox wurde in Java in der Entwicklungsumgebung Eclipse als Maven-unterstütztes Projekt erstellt. Das Coderepository enthält zur vereinfachten Weiterentwicklung daher nicht nur die reinen Codequellen sondern das gesamte Eclipse-Projekt.
Die Windows Executables werden im Maven-Build-Prozess über Launch4j automatisch erzeugt.
Der Windows-Installer wird mit NSIS (Nullsoft Scriptable Install System) über das Script nsis_installer.nsi im Nachgang erzeugt.
Für die Erzeugung der graphischen Benutzeroberfläche wird die SWT-Bibliothek verwendet.
Da die SWT-Bibliothek betriebssystemabhängig ist, muss die OpenXRechnungToolbox entsprechend betriebssystemspezifisch kompiliert werden. Dazu sind entsprechende Profile in der Maven-Spezifikationsdatei (pom.xml) spezifiert. Das Batch-Skript build-all-archs.bat führt entsprechend Maven-Aufrufe für alle Profile nacheinander aus, so dass hierüber alle zip-Archive zur Veröffentlichung erzeugt werden.
Derzeit besteht das Projekt aus sechs Paketen: (1) gui, (2) helpers, (3) leitwegcheck, (4) validation, (5) visualization, (6) cli. Die Quellen für die Erzeugung der Benutzeroberflächen finden sich im Paket gui. Das Paket helpers enthält verschiedene ausgelagerte Hilfsfunktionen, z.B. für den Umgang mit der Konfigurationsdatei. Das Paket cli enthält die Methoden zur Nutzung der Toolbox im Kommandozeilen-Modus. Der Zugriff auf die Methoden aus der Kommandozeile heraus erfolgt aber über das Paket gui. Die weiteren drei Pakete enthalten die Backendfunktionen für die eigentlichen Tools: die Visualisierung (Paket visualization), die Prüfung (Paket validation) und die Leigweg-ID-Erzeugung/-Prüfung (Paket leitwegcheck). Eine automatischer Unittest ist derzeit noch nicht verfügbar. Ein Beitrag aus der Community wird sehr begrüßt.
Die Hauptklasse der OpenXRechnungsToolbox ist im Paket gui die Klasse AppWindow.java. Diese erzeugt das Hauptfenster und bietet Zugriff auf den Kommandozeilen-Modus. Das Visualisierungs- sowie das Prüfergebnis wird in einem Browserfenster dargestellt, das von der Klasse HTMLWindow.java erzeugt wird. Die Benutzeroberfläche der Leitweg-ID-Erzeugung und -Prüfung wird durch die Klasse LWIDWindow.java erzeugt. Das Fenster für die Konfiguration der Einstellungen wird durch die Klasse SettingsWindow.java bereitgestellt. Alle weiteren Informationen können der javadoc Dokumentation entnommen werden.
Die einzelnen Schritte für die Erzeugung sind:
© Dr. Jan C. Thiele. | Design by TEMPLATED.