Releases
Version | Datum | Hinweise | Kompatibilität | Bemerkung |
---|---|---|---|---|
1.0.0 | 11.03.2021 | Erste veröffentlichte Fassung | ab Nuclos 4.44.1 | siehe Version 1 |
1.1.0 | 2.09.2023 | Aktualisierung auf XRechnung 2.3.1 | ab Nuclos 4.46.9 | |
2.0.0 | 03.07.2024 | Aktualisierung auf XRechnung 3.0.2 XML-Syntax CII ZUGFeRD 2.2 | ab Nuclos 4.2022.14.3 |
Überblick
Das Nuclet ermöglicht die Erzeugung elektronischer Rechnungen im XML- oder PDF-Format, deren offizielle Validierung und deren Darstellung in einer HTML-Datei.
Unterstützt wir das Format XRechnung in der Version 3.0.2 in der XML-Syntax Universal Business Language (UBL) der OASIS in der Version 2.1 und der XML-Syntax Cross Industry Invoice (CII) der UN/CEFACT in der Version D16B.
Weiterhin wird die Spezifikation ZUGFeRD in der Version 2.2 abdeckt.
Zur Erzeugung der Dateien stehen folgende Möglichkeiten zur Verfügung:
- Die Regel
org.nuclet.xrechnung.ErzeugeERechnung
, die in einem geeigneten Layout eingebunden werden kann und wie bisher (Version 1) eine XRechnung (UBL) erstellt. - Eine eigene Regel, die
org.nuclet.xrechnung.ErzeugeERechnung#erzeugeERechnung(org.nuclet.xrechnung.Rechnungen, boolean, org.nuclos.api.common.NuclosFile)
mit geeigeneten Parametern (siehe weiter unten) aufruft und verarbeitet.
Dabei werden folgende Dateien erzeugt, zurückgegeben und in einem geeigneten Unterformular abgelegt.
- XML-Datei gemäß Standard XRechnung oder PDF-Datei gemäß Standard ZUGFeRD (je nach Methodenaufruf)
- HTML-Datei als Vorschau auf die erzeugten Daten
- HTML-Datei mit Ergebnissen der XML-Validierung
- Falls die Validierung der PDF-Datei nicht erfolgreich war: TXT-Datei mit Ergebnissen der PDF-Validierung
- LOG-Datei mit Ergebnissen der Rechnungserzeugung
Optional ist außerdem eine Validierung der Leitweg-ID im Nuclet enthalten.
Ein Beispiel ist im angehängten Beispiel-Nuclet verfügbar.
Hinweise zu Version 2.0.0
Hinweise zur Methode public static List<XRechnung.XRechnungFile> erzeugeERechnung(Rechnungen rechnungen, boolean formatUbl, NuclosFile pdfFile)
:
rechnungen
: die jeweilige Rechnung alsorg.nuclet.xrechnung.Rechnungen
(Integrationspunkt); muss eine ID und eine Rechnungsnummer habenformatUbl
: steuert die XML-Syntax (bei false: CII)pdfFile
: vorab erzeugte PDF-Datei im Format PDF-A1, in das die XML-Datei eingebettet werden soll - falls angegeben muss das Format CII gewählt werden- Rückgabewert: Liste der erzeugten Dateien inkl. Validierungsergebnissen
Nuclet-Struktur
Es werden zwei Nuclets benötigt:
org.nuclet.xrechnung
: Haupt-Nuclet zur Erzeugung von elektronischen Rechnungenorg.nuclet.xrechnung.datenquellen
: Nuclet zur Definition der Datenquellen, die je Projekt anpasst werden sollten. Dieses Nuclet wird von ersterem benötigt und sollte einmalig als Vorlage importiert werden.
Sollte beim Nuclet-Import bereits eine vorherige Version 1 mit projektspezifisch angepassten Datenquellen im Zielsystem vorhanden sein, müssen diese vorab gesichert und im Anschluss an den Import erneut geändert werden.
Für zukünftige Aktualisierungen genügt dann der Import des Haupt-Nuclets, bei dem die Datenquellen unverändert bleiben.
PDF-Erzeugung über ein Formular für ZUGFeRD
Das in Nuclos integrierte JasperReports ermöglicht die Erzeugung von PDF-Dateien im Format PDF-A1. Dafür müssen folgende Einstellungen in der Vorlage vorgenommen werden - Schriftart und ICC-Profil sind bereits im Haupt-Nuclet enthalten.
<property name="net.sf.jasperreports.export.pdfa.conformance" value="pdfa1a" /> <property name="net.sf.jasperreports.export.pdfa.icc.profile.path" value="org/xre/icc/sRGB2014.icc" /> <style name="default" isDefault="true" fontName="xreLibSans"/>
Beim Erstellen der Jasper-Vorlage sollte darauf geachtet werden, dass keine Schriftarten vorgegeben werden, die nicht eingebettet werden können.
So führt beispielweise folgende Angabe zu einem Fehler bei der Erzeugung von PDF-Dateien im Format PDF-A1.
<font size="10" isBold="true" pdfFontName="Helvetica-Bold"/>
Diese sollte wie folgt ersetzt werden (die mitgelieferten Schriftarten werden über den default
-Stil automatisch eingebettet).
<font size="10" isBold="true"/>
Integration
Die Integration nach erfolgtem Nucletimport (siehe Nuclet Import) ist wie folgt vorzunehmen.
Schritt | Beschreibung | Screenshot |
---|---|---|
1 | Nach Import beider Nuclets muss die Serverinstanz neu gestartet werden, da das Haupt-Nuclet eigene Extensions enthält. | |
2 | Es werden drei Businessobjekte benötigt, die unter Konfiguration → Integrationspunkt eingebunden werden müssen
| |
3 | Außerdem muss es noch ein Businessobjekt für die Rechnungspositionen geben, dieses wird aber nicht für die Integrationspunkte benötigt. | |
4 | Das zweite Nuclet enthält außerdem drei Datenquellen (Konfiguation → Datenquellen → Report & Formular), die noch an die jeweiligen Gegebenheiten angepasst werden müssen.
Diese liefern die eigentlichen Daten zur Erzeugung der elektronischen Rechnung. Ein Beispiel ist im angehängten Beispiel-Nuclet verfügbar. Die Zuordnung der Datenfelder zu den Inhalten der elektronischen Rechnung erfolgt gemäß Standard XRechnung, es wird jedoch nur ein Teil der verfügbaren Felder unterstützt (siehe Datenquellen bzw. Testfallgruppe_01.xlsx). | |
5 | Danach kann die Regel Die Regeln zur Validierung der Leitweg-ID werden automatisch mit dem Businessojekt Rechnungsempfänger verknüpft. |
|
6 | Im Falle valider Daten werden über den Knopf die oben beschriebenen vier Dateien erzeugt und das Ergebnis in einer Meldung präsentiert. |
|
2 Kommentare
Matthias Köper sagt:
Hallo,
welche XML-Syntax wurde für die Implementierung der XRechnung verwendet?
Konstantin Röhl sagt:
Hallo,
es wurde die Universal Business Language (UBL) der OASIS in der Version 2.1 verwendet.