Versionen im Vergleich

Schlüssel

  • Diese Zeile wurde hinzugefügt.
  • Diese Zeile wurde entfernt.
  • Formatierung wurde geändert.

Das ZUGFeRD-Modul ist ein Software-Modul, das als Bibliothek in andere Software-Systeme inkludiert wird, mit dem Ziel, diese Systeme um die ZUGFeRD-Funktionalität zu erweitern. Dabei besitzt es generell zwei unterschiedliche Kommunikationsfronten.
Zum einen kommuniziert die Software, in die das ZUGFeRD-Modul eingebettet ist, mit dem Modul. Zum anderen ließt und schreibt es XML-Dateien. Damit ist das Modul in der Lage als Drehscheibe zwischen einer Anwendung und den XML-Dateien zu agieren.
Kern des ZUGFeRD-Moduls ist ein internes Rechnungsdokument, das von beiden Seiten aus gelesen oder beschrieben werden kann. Weiterhin kann das Modul das interne Dokument auch validieren bzw. die Endsummen und Steuerbeträge eigenständig ermitteln, genauer gesagt die selbst ermittelten Werte in der Validierung mit vorhandenen Werten vergleichen. In der Implementierung wurde darauf Wert gelegt, dass das Setzen, Validieren, Kalkulieren und Schreiben des internen Rechnungsdokuments in einer hohen Geschwindigkeit erfolgt, sodass der Prozess für die Erzeugung von Massendaten geeignet ist. Zur Kommunikation mit der Anwendung gibt es ein Set von Calc-Befehlen, welche das Bearbeiten ermöglichen.


Setzen

Aus der Anwendung heraus ist es möglich, jedes Objekt des internen Rechnungsdokuments zu setzen und so das Dokument zu befüllen. Dazu wir der Set-Befehl verwendet.


Validieren

Im ZUGFeRD-Modul ist ein Validierer enthalten, der es erlaubt, das interne Rechnungsdokument zu validieren. Er ist kein XML-Validierer, der über eine XSD-Schemaprüfung arbeitet. Ganz im Gegenteil wurde auf die XSD-Schemaprüfung bewusst verzichtet, da der interne Validierer diese Aufgabe anhand von Inhaltswerten mit übernimmt. Er prüft als Erstes die in der technischen Dokumentation aufgeführte Kardinalität, bezogen auf das Profil, die unabhängig vom Status ist.

Je nach Standard prüft der Validierer das Profil BASIC, COMFORT oder EXTENDED bei ZUGFeRD 1.0 bzw. MINIMUM, BASIC WL, BASIC, COMFORT (EN 16931), EXTENDED bei ZUGFeRD2 2.0, Factur-X und XRechnung.

Weiterhin kalkuliert der Validierer die Endsummen und Steuern, trägt diese bei Fehlen ein oder vergleicht die errechneten Werte mit den gesetzten Werten. Er beseitigt auf Wunsch unnötige  Werte oder Objekte, welche im angegebenen Profil nicht zulässig sind.

Ebenso prüft er Währungseinheiten und setzt oder löscht diese automatisch, so wie es das Ausgabeformat verlangt. 


Übergabeparameter

Dem Validierer wird mit dem Validierungsbefehl optional ein Status zur Validierung und ein Schalter zur Autokorrektur übergeben.
Der Validierungsstatus ist nur für ZUGFeRD 1.0 von Bedeutung. Für die Validierung von ZUGFeRD Versionen größer 1.0 sollte der Status immer auf REQUIRED stehen. Bei der Validierung wird überprüft, ob die Elemente mit Status und Profil existieren müssen und ob deren Wert korrekt ist.

Dabei sind folgende Status-Werte möglich:

  • REQUIRED bzw. R
  • ADVISED bzw. A
  • OPTIONAL bzw. O


Der Schalter zur Autokorrektur ist nur für ZUGFeRD 2.0, Factur-X und XRechnung von Bedeutung. Er definiert, ob bei Elementen, welche eine größere Kardinalität besitzen, als erlaubt ist bzw. in dem Profil nicht erlaubt sind, durch die Autokorrektur minimiert bzw. gelöscht werden.


Rückgabe der Ergebnisse

Der Rückgabewert ist das Validierungsprotokoll für den Fall, dass ein Fehler aufgetreten ist. Ist kein Fehler aufgetreten, so ist der Rückgabewert leer.

Es wird dringend empfohlen, jedes interne Rechnungsdokument vor dem Wandeln in einen XML-String bzw. eine XML-Datei zu validieren. Das verhindert die Weitergabe ungültiger ZUGFeRD-, Factur-X- und XRechnung-XML-Dateien. Um die Validierung beim Export zu erleichtern, ist es möglich, im Schreibbefehl die Validierung mit durchzuführen. Gibt es Fehler beim Validieren, so wird die XML-Datei bzw. der XML-String nicht erzeugt.   


Lesen und Schreiben

Das Lesen bzw. Schreiben wird mit dem Read- oder Write-Befehl durchgeführt. Dabei kann optional auch noch validiert werden. Sodass beide Schritte auf einmal durchgeführt werden können.