Odoo Print Engine von Nexigo
Einrichtungs und Funktionsleitfaden für die Odoo Print Engine von Nexigo
Modulüberblick
Die von Nexigo entwickelte Print Engine schafft die Möglichkeit alle Odoo-Reports zu übersteuern und sie mit selbst erstellten Templates zu ersetzen. Dafür kommt die Software JasperSoft zum Einsatz, wodurch der Beleg pixelgenau angepasst werden kann.
Funktionsumfang
- Anpassung jedes Belegs: Es kann für jeden Beleg einzeln entschieden werden, ob er mit dem selbst definierten Template übersteuert werden soll
- Hinzufügen von Informationen: Bestehende oder neu definierte Felder können sofort auf dem Beleg verwendet werden
Voraussetzungen
- Odoo 19: Das Modul setzt eine Odoo-19-Installation voraus.
- Print-Server Hosting: Der Print-Dienst kann von Nexigo gehostet oder lokal installiert werden.
- JasperSoft Studio: Um Templates anpassen zu können wird eine lokal Installation der Software benötigt.
- GitHub Account: Um angepasste Templates zu veröffentlichen, wird ein GitHub-Account benötigt.
Grundlegender Ablauf
Um Templates zu entwerfen und durch den Jasper Connector verfügbar zu machen, werden drei wesentliche Bestandteile benötigt:
Print-Server
Der Print-Server läuft als Java Spring-Boot Applikation auf einer von Nexigo gehosteten Cloud-Instanz oder on-premises beim Kunden. Beim Druck aus Odoo wird beprüft, ob es ein Report-Mapping für diesen Beleg gibt. Ist ein Mapping vorhanden, sendet der Jasper Connector eine Anfrage an den Print-Server und übergibt die Belegdaten als JSON-Payload. Der Print-Server verarbeitet diese Daten, füllt damit das in JasperSoft definierte Template und liefert als Ergebnis das generierte PDF an Odoo zurück.
GitHub-Repository
Die erstellten Jasper-Templates werden in einem GitHub Repository verwaltet. Jeder Nutzer, der Anpassungen vornehmen möchte, benötigt dafür einen GitHub Account.
JasperSoft Studio
Über diese Software werden .jrxml-Dateien erstellt die als Templates für das spätere Rendering dienen. Für die Anpassung der Templates empfiehlt sich eine Schulung.
Konfiguration
Schritt 1: Berechtigungen
Pro Benutzer kann hinterlegt werden, ob die Konfigurationen für die Print Engine eingesehen (Jasper-User) oder bearbeitet (Jasper Manager) werden können. Admin-Benutzer haben zusätzlich die Möglichkeit einige Stammdaten und die API-Einrichtung vorzunehmen.

Schritt 2: API-Einrichtung
Für den Aufruf des Print-Servers, muss sowohl die API-URL als auch ein API-KEY hinterlegt werden. Über den Print-Server wird der Beleg gerendert und erstellt.
Über den Button Update repo & compile changes werden die geänderten Templates aktualisiert, kompiliert und dadurch für den Druck verfügbar gemacht. Über den Button Recompile all reports in repository werden alle Templates kompiliert.

Schritt 3: Footer Informationen
In den Einstellungen können außerdem Footer-Informationen definiert werden, die dann für alle Belege gelten. Zudem kann variabler statischer Inhalt angelegt werden.

Schritt 4: Anlegen eines Report-Mappings
Um einen Beleg zu individualisieren muss neben den Templates ein Report-Mapping angelegt werden. Dort sind folgende Informationen anzugeben:
- Name: Der Name des Mappings. Hat keinerlei steuernde Wirkung und dient lediglich der Zuordnung.
- Odoo Report: Der Report der übersteuert werden soll.
- Connector Report Path: Der Pfad unter dem das Template auf dem Print-Server liegt.
- Depth: Die Datentiefe der an den Beleg übergebenen Daten.
Beispiel: Tiefe 1 enthält nur die Basisdaten, also ID und Namen des Kunden auf der Rechnung. Bei Tiefe 2 werden zusätzlich alle weiteren Felder aus der Kunden-Tabelle übergeben. - Locale Field: Die Belegsprache
- Include Paths: Hier können Felder angegeben werden die durch die Definition der Tiefe eigentlich ausgeschlossen werden würden. Es empfiehlt sich allgemein eine Tiefe von 2 zu wählen und ausgewählte Felder als Include Path zu definieren.

Schritt 5: JSON Payload generieren
Über den Button Generate JSON kann ein Beispiel-JSON für diesen Report generiert werden. Dabei kann ein beliebiger Datensatz aus dem System gewählt werden. Diese Funktion ist vor allem für Anpassungen der Templates relevant.
