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.

Screenshot: Konfigurationsmaske

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.

Screenshot: Konfigurationsmaske

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.

Screenshot: Konfigurationsmaske

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.
Screenshot: Konfigurationsmaske

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.

Screenshot: Konfigurationsmaske