Deutsch
Deutsch

DNUG News

Erstellung von E-Rechnungen mit HCL Domino – Umsetzungsbeispiel mit Mustangproject

Die Pflicht zum Empfang (ab 2025) und später (ab 2027) auch zur Erstellung von E-Rechnungen stellt viele Unternehmen, die Ihre Rechnungen bisher mit HCL Domino erstellt haben, vor technische Herausforderungen. Doch mit dem richtigen Ansatz lässt sich die Erstellung und Verarbeitung elektronischer Rechnungen nahtlos in Domino integrieren.


Ein bewährter Weg ist die Nutzung des Open-Source-Werkzeugs Mustangproject, das sowohl XRechnung als auch ZUGFeRD unterstützt und eine Java-basierte Schnittstelle zur Verfügung stellt. Hier wird eine beispielhafte ZUGFeRD-Implementierung vorgestellt, da dieses Format sowohl von Menschen als auch maschinell gelesen werden kann. Mehr dazu auch in unserem vorherigen Blogpost, den Du HIER findest.

Zunächst ein grober Überblick über die Implementierung:

Voraussetzungen

Für die Integration ist HCL Domino 14 erforderlich, da die aktuelle Version von Mustangproject mindestens Java 11 voraussetzt. Ältere Domino-Versionen sind daher nicht kompatibel. Das folgende Beispiel wurde mit HCL Notes 14.0.0FP4 erstellt.

Die benötigten Bibliotheken können HIER direkt von der Mustangproject-Website heruntergeladen werden.

Wichtig: Es muss die Variante „Einbindung ohne Maven“ gewählt werden. Dann unbedingt die JAR-Datei mit Abhängigkeiten herunterladen. Andernfalls fehlen essenzielle Bibliotheken und führen zu Fehlern.

Schritt-für-Schritt-Implementierung

  1. Java-Bibliothek im Domino Designer anlegen
    Eine neue Java-Bibliothek anlegen und die heruntergeladene JAR-Datei über Import / Archive importieren.
     
  2. Java-Klasse für Rechnungsverarbeitung erstellen
    In der Bibliothek eine neue Klasse anlegen (z. B. ReadInvoice oder WriteInvoice) und dort den Code zum
    Lesen oder Schreiben von E-Rechnungen implementieren. Die Bibliothek sollten dann in etwa so aussehen:Beispiel zum Lesen von Daten aus einer eRechnung:

    Es wird empfohlen, die Klassen und die Beispiel-PDFs des Mustangprojects HIER bei GitHub herunterzuladen, um im Detail zu sehen, welche Werte, in welcher Form ausgelesen werden können. Beispiel zum Schreiben von Daten in eine eRechnung:
    Das PDF/A mit den menschenlesbaren Rechnungsdaten muss im Beispiel oben bereits vorhanden sein. Zur Überprüfung der gesetzten Werte beim Schreiben einer eRechnung, das neu erzeugte PDF „factur-x.pdf“ öffnen. In dem PDF sollte nun eine XML-Datei mit Namen „factur-x.xml“ enthalten sein. In dieser XML-Datei sind jetzt die im Beispielcode gesetzten Werte enthalten.
  3. LotusScript-Button oder Agent zum Aufruf erstellen
    Um die Daten in ein Notes-Dokument zu schreiben oder aus einem zu lesen, in der Anwendung, aus der
    heraus die eRechnung gelesen oder geschrieben werden soll, an beliebiger Stelle eine Routine in einer LotusScript-Bibliothek oder einen LotusScript-Agenten aufrufen. In diesem LotusScript-Code ein NotesDocument-Objekt vorbereiten und dort die nötigen Felder setzen. Dann die Dokument-ID an einen Java-Agenten übergeben, der die Klassen aus der zuvor erzeugten Java-Bibliothek aufruft.

    Beispiel für den LotusScript-Code:Hinweis: Das Objekt „UI“ im Beispiel wurde im Vorfeld mit einer selbst erstellen LotusScript-Klasse erzeugt, die Zugriff auf alle häufig genutzten UI-Funktionen bietet. 
  4. Java-Agent anlegen und Bibliothek einbinden
    Einen neuen Java-Agenten anlegen und die zuvor erstellte Java-Bibliothek importieren. Dort in der Klasse „JavaAgent.java“ die Methode aus der Klasse ReadInvoice bzw. WriteInvoice aufrufen:

    Der obige Code zeigt nur ein statisches Beispiel. Es empfiehlt sich, auch damit zu beginnen. Da in der Regel aus einem eigenen Notes-Dokument gelesen oder hineingeschrieben werden soll, hier ein Beispiel dafür:

  5. Berechtigungen prüfen
    Wenn der Java-Agent E-Rechnungen schreiben soll, muss er „restricted file operations“ ausführen dürfen. Diese Einstellung ist den Sicherheitseinstellungen des Agenten zu aktivieren:
  6. Code testen:
    1. Die einfachste Möglichkeit zum Testen besteht aus Prints, die mittels System.out.println(„Hier die gewünschten Werte ausgeben“); ausgegeben werden. Um diese Ausgaben zu sehen, muss die Java-Konsole aktiviert werden (Tools / Show Java Debug Console). Dies funktioniert am besten lokal.
    2. Für das richtige Debugging von Java-Agenten stellt HCL eine separate Anleitung bereit:
    🔗 https://help.hcl-software.com/dom_designer/14.0.0/xpageuser/wpd_programming_ui_java_debug.html?hl=debug%2Cjava%2Cagents
    Mit aktiviertem Debug-Modus lassen sich Klassen, Aufrufe und Ausgaben direkt im Domino Designer nachvollziehen – ideal, um Fehler zu finden.

Fazit

Mit Mustangproject lässt sich die E-Rechnungspflicht auch unter HCL Domino technisch sauber umsetzen – ganz ohne zusätzliche Middleware. Durch die Kombination aus Java-Bibliothek, offener Lizenz und die Nutzung der ohnehin vorhandenen HCL Domino-Infrastruktur ist die Lösung flexibel, zukunftssicher und ideal für Unternehmen, die ihre Domino-Umgebung weiter nutzen möchten.

Deine Fachgruppe Development

Immer informiert bleiben

Abonniere unseren E-Mail-Newsletter und wir halten Dich mit Infos rund um die DNUG und ihre Events auf dem Laufenden.

Mit Deiner Anmeldung bestätigst Du, dass Du unsere Datenschutzbestimmungen gelesen hast und mit ihnen einverstanden bist.

Probleme mit dem Newsletter-Empfang? Versuch es mit diesen Tipps.