PDF Reports wirken auf den ersten Blick oft wie ein technisches Detail. In der Lebensmittelindustrie sind sie aber sehr wichtig.
Viele (Lebensmittel)Betriebe arbeiten in der Produktion weiterhin mit Papierprotokollen. Das ist nicht automatisch schlecht. Gerade wenn Mitarbeiter in der Produktion noch keine Tablets oder Terminals verwenden, ist ein sauber gedrucktes Produktionsprotokoll oft die einfachste und zuverlässigste Lösung.
Das Protokoll wird vor der Produktion gedruckt, in der Produktion ausgefüllt und danach wieder zurück ins Büro gebracht. Dort kann es geprüft, abgelegt oder als Scan an den Fertigungsauftrag angehängt werden.
Im Falle eines Rückrufes oder Rückverfolgbarkeits-Prüfung werden die Protokolle als Scan oder physisch angeschaut.
In der Lebensmittelproduktion gibt es nicht nur ein Protokoll
In vielen Odoo Projekten merkt man schnell: Es gibt nicht das eine Produktionsprotokoll.
Je nach Betrieb und Prozess gibt es zum Beispiel:
- Einwaageprotokolle
- Mischprotokolle
- Abfüllprotokolle
- Produktionsprotokolle
- Reinigungsprotokolle
- Gewichtskontrollen
- Metalldetektionsprotokolle
- Qualitätsprotokolle
- Freigabeprotokolle
Und damit ist es meistens noch nicht erledigt. Ein Abfüllprotokoll für Pulver sieht anders aus als ein Abfüllprotokoll für Flüssigkeiten. Ein Mischprotokoll an einem grossen Mischer für Proteinpulver braucht andere Angaben als ein Protokoll an einer kleinen Waage für einen Vitamin-Premix. Bei gewissen Produkten braucht es zusätzliche Kontrollen, bei anderen nicht.
Wenn man das alles mit einzelnen hartcodierten XML Templates löst, wird es sehr schnell unübersichtlich.
Das Problem mit hartcodierten PDF Reports
Odoo PDF Reports werden mit QWeb gebaut. Das ist grundsätzlich sehr mächtig. Man kann fast alles darstellen, was man braucht.
Das Problem beginnt dann, wenn jedes Protokoll als separates, hartcodiertes Template gebaut wird.
Am Anfang funktioniert das noch gut:
- Ein Template für das Einwaageprotokoll
- Ein Template für das Mischprotokoll
- Ein Template für das Abfüllprotokoll
Später kommen Varianten dazu. Ein Kunde braucht eine zusätzliche Tabelle. Ein Arbeitsplatz braucht andere Kontrollpunkte. Ein Produkt braucht andere Unterschriftenfelder. Dann kopiert man das Template, passt es an, kopiert wieder, passt wieder an und irgendwann weiss niemand mehr, welches Template eigentlich wofür verwendet wird.
Genau das wollte ich vermeiden.
Die bessere Lösung: Protokolle konfigurierbar machen
Statt jedes Protokoll komplett als eigenes XML Template zu bauen, habe ich im Rahmen der EP-Food Branchenlösung eine einfache Struktur entwickelt.
Ein Protokoll besteht aus einer Vorlage. Diese Vorlage besteht aus mehreren Abschnitten. Zum Beispiel:
- Titel
- Materialübersicht
- Arbeitsgangübersicht
- freier HTML Text
- leere Tabellen zum Ausfüllen
- Unterschriftenblock
- Seitenumbruch
Der eigentliche PDF Report bleibt dabei bewusst einfach. Er rendert nur die gewählte Protokollvorlage und die Abschnitte in der richtigen Reihenfolge.
Die Logik liegt nicht mehr komplett im QWeb Template, sondern in Odoo Daten. Das macht die Lösung deutlich wartbarer.

Protokolle direkt am Arbeitsplatz oder Arbeitsgang hinterlegen
Der wichtigste Punkt ist die Zuordnung.
In Odoo gibt es Arbeitsplätze und Arbeitsgänge. Genau dort gehören Produktionsprotokolle hin.
Ein Arbeitsplatz kann Standardprotokolle haben. Zum Beispiel:
- Waage 1: Einwaageprotokoll
- Mischer 1: Mischprotokoll
- Abfülllinie 1: Abfüllprotokoll und Gewichtskontrolle
Wenn ein bestimmter Arbeitsgang etwas Spezielles braucht, kann der Arbeitsgang eigene Protokolle bekommen. Diese überschreiben dann die Standardprotokolle vom Arbeitsplatz.
Das ist einfach zu verstehen:
- Wenn der Arbeitsgang eigene Protokolle hat, werden diese verwendet.
- Wenn der Arbeitsgang keine eigenen Protokolle hat, werden die Standardprotokolle vom Arbeitsplatz verwendet.
Damit können wir sehr flexibel bleiben, ohne die Lösung unnötig kompliziert zu machen.

Vor der Produktion drucken, nach der Produktion scannen
Auf dem Fertigungsauftrag gibt es einen Button zum Drucken der Protokolle.
Odoo prüft dann die Arbeitsgänge vom Fertigungsauftrag und zeigt alle verfügbaren Protokolle an. Der Benutzer kann einzelne Protokolle auswählen oder alle drucken.
Beim Drucken wird ein PDF erzeugt und direkt am Fertigungsauftrag gespeichert. Das ist wichtig, weil das gedruckte Protokoll ein Snapshot ist. Wenn später die Vorlage angepasst wird, darf sich das alte Protokoll nicht rückwirkend verändern.
Nach der Produktion kann das ausgefüllte Papierprotokoll gescannt und wieder am Fertigungsauftrag abgelegt werden.
So bleibt der Prozess einfach:
- Fertigungsauftrag erstellen
- Protokolle drucken
- Produktion ausführen
- Protokolle von Hand ausfüllen
- Scan am Fertigungsauftrag ablegen


Warum nicht direkt alles digital?
Digitale Workflows sind natürlich spannend. Mit Odoo Shopfloor kann man viele Produktionsschritte direkt am Terminal führen, Werte erfassen und Freigaben digital machen.
Aber nicht jeder Betrieb ist sofort dort.
Viele Lebensmittelbetriebe brauchen zuerst eine gute Papierlösung und wollen in einem zweiten Schritt Shopfloor einführen. Sie wollen zuerst einfach saubere Protokolle, klare Arbeitsanweisungen und eine einfache Ablage. Genau dafür sind PDF Protokolle nach wie vor sehr wertvoll.
Wichtig ist nur, dass man die Struktur so baut, dass sie später digital erweitert werden kann. Deshalb sollten Produktionsdaten nicht einfach irgendwo in einem riesigen HTML Feld verschwinden. Was aus Odoo kommt, soll aus Odoo Daten kommen. Freier HTML Text ist gut für Anweisungen, Hinweise und leere Tabellen. Aber Mengen, Produkte, Arbeitsgänge und Arbeitsplätze sollten sauber aus Odoo gelesen werden.
Im nächsten Blogbeitrag zeige ich das Ganze konkreter für Nutraceuticals, also zum Beispiel für Einwaageprotokolle, Mischprotokolle und Kapselfüllprotokolle. Also stay tuned :-)
Falls du Fragen hast, oder bei dir auch die EP-Food Branchenlösung einführen willst, kontaktiere mich gerne.
Nate