Dokumentation

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.

Inhalt

Customizing
Konfigurationsdatei
Sprachen hinzufügen
Prüftoolkonfigurationsversionen hinzufügen
Visualisierung konfigurieren
Hilfedateien
Logging
Entwicklung und Build

Customizing

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.

Konfigurationsdatei

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.

Sprachen hinzufügen

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_.properties ab. Die aktuell gewählte Sprache ist im Key language festgelegt. Dieser Eintrag kann hier händisch direkt in der Datei geändert werden oder über die Benutzeroberfläche im Menü Einstellungen.

Prüftoolkonfigurationsversionen hinzufügen

Eine zusätzliche Version des Prüftools machen Sie wie folgt verfügbar: Im Pfade 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.=resources/validatorxrechnung//scenarios.xml
validator.cii.xsd.=resources/validatorxrechnung//resources/cii/16b/xsd/CrossIndustryInvoice_100pD16B.xsd
validator.ubl.xsd.=resources/validatorxrechnung//resources/ubl/2.1/xsd/maindoc/UBL-Invoice-2.1.xsd
validator.ublcn.xsd.=resources/validatorxrechnung//resources/ubl/2.1/xsd/maindoc/UBL-CreditNote-2.1.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 /resources/default-report.xsl im Block:
.metadata dt {
float: left;
width: 230px;
clear: left;
}
die Breite auf 250px erhöht.

Visualisierung konfigurieren

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.

Hilfedateien

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.

Logging

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.

Entwicklung und Build

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.
Für die Validator-Bibliothek steht kein Maven-Repository zur Verfügung. Daher wird die Bibliothek im lib-Ordner mitgeliefert und muss von dort ins lokale Repository übertragen werden.
Dies kann über den Befehl: mvn org.apache.maven.plugins:maven-install-plugin:2.5.2:install-file -Dfile=validationtool-1.4.2.jar erfolgen.

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 fünf Paketen: (1) gui, (2) helpers, (3) leitwegcheck, (4) validation, (5) visualization. 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. 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. Das Visualisierungs- sowie das Prüfergebnis wird in einem Browserfenster dargestellt, dass 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:

  • KoSIT validation tool, OpenJDK herunterladen
  • JDK, NSIS, Maven & Eclipse installieren
  • KoSIT validation tool in Maven registrieren: mvn org.apache.maven.plugins:maven-install-plugin:2.5.2:install-file -Dfile=validationtool-1.4.2.jar
  • Eclipse Existing Maven Project importieren
  • create_keystore.bat ausführen
  • keystore Passwort in Property keystore.password in pom.xml eintragen
  • build_all_archs.bat ausführen (mvn clean; mvn install)
  • keystore Passwort in Zeile finalize! in target/nsis_installer.nsi eintragen
  • nsis_installer.nsi in Ordner target mit NSIS ausführen