Wer hat was geändert? Protokolle in Odoo
Kurz gesagt
Odoo 20.0 notiert am Datensatz im Chatter Zeitstempel, Urheber sowie alten und neuen Wert einer Änderung, aber nur für Felder, die zur Verfolgung markiert sind. Buchhaltungsrelevante Änderungen bündelt der Bericht Audit Trail unter Buchhaltung ‣ Überprüfen; die Buchhaltungs-App mit ihren Berichten ordnet der Editionsvergleich nur Enterprise zu. Die Aufbewahrung folgt dem Landesrecht: zehn Jahre für Bücher in Deutschland (§ 147 Abs. 3 Satz 1 AO) und in der Schweiz (Art. 958f Abs. 1 OR), acht Jahre für deutsche Buchungsbelege, sieben Jahre in Österreich (§ 132 Abs. 1 BAO); für Institute nach dem Kreditwesengesetz, beaufsichtigte Versicherungsunternehmen und Wertpapierinstitute bleibt bei Buchungsbelegen die am 31. Dezember 2024 geltende Fassung maßgeblich (Art. 97 § 19a Abs. 3 EGAO).
Das Wichtigste
- Odoo 20.0 notiert Änderungen im Chatter nur an Feldern, die zur Verfolgung markiert sind.
- Importe und Systemeingriffe erscheinen im Chatter als Protokollnotiz von OdooBot.
- Den Bericht Audit Trail öffnen Sie in Odoo 20.0 unter Buchhaltung ‣ Überprüfen; die Buchhaltungs-App mit ihren Berichten ordnet der Editionsvergleich Enterprise zu.
- Der restriktive Audit Trail verhindert das Löschen verfolgter Datensätze; möglich sind Storno oder Archivierung.
- Deutschland: Protokollierung nach GoBD Rz. 107 bis 112 zu § 146 Abs. 4 AO; Aufbewahrung zehn Jahre für Bücher und acht Jahre für Buchungsbelege nach § 147 Abs. 3 Satz 1 AO, für Institute, Versicherer und Wertpapierinstitute in der am 31. Dezember 2024 geltenden Fassung (Art. 97 § 19a Abs. 3 EGAO).
- Schweiz: Art. 4 Abs. 1 DSV verlangt die Protokollierung nur vom privaten Verantwortlichen und seinem privaten Auftragsbearbeiter, wenn besonders schützenswerte Personendaten in grossem Umfang automatisiert bearbeitet oder ein Profiling mit hohem Risiko durchgeführt wird und die präventiven Massnahmen den Datenschutz nicht gewährleisten; die Protokolle sind mindestens ein Jahr getrennt vom System aufzubewahren (Abs. 5).
Wer wissen will, wer eine Lieferadresse, einen Preis oder eine Buchung geändert hat, findet in Odoo mehrere Spuren: am Datensatz selbst, in einem Bericht der Buchhaltung und, je nach Hosting, in den Protokollen des Servers. Keine Spur zeigt alles; welche Sie brauchen, hängt davon ab, was Sie nachweisen müssen.
Was der Chatter am Datensatz festhält
Die Dokumentation 20.0 nennt Chatter-Fenster auf fast jedem Datensatz; Notizen, Nachrichten, Anhänge und geplante Aktivitäten laufen dort zusammen. Wird ein Datensatz geändert, entsteht ein Eintrag mit Zeitstempel, der die Angabe vorher und nachher nennt und dem handelnden Benutzer zugeordnet ist. Welche Felder so erscheinen, hängt an der Felddefinition: Nach der Entwicklerreferenz 20.0 schreibt das Mail-Modul eine Änderung nur dann in den Chatter, wenn das Feld das Attribut tracking trägt. Kommt die Änderung aus einer importierten Datei oder aus einem Systemeingriff, entsteht eine Protokollnotiz, die die Dokumentation OdooBot zuschreibt.
Was der Audit-Trail-Bericht zusätzlich zeigt
Für die Buchhaltung gibt es einen eigenen Bericht; er gehört zur Buchhaltungs-App, die der Editionsvergleich samt Berichten nur Enterprise zuordnet. Laut Dokumentation 20.0 verfolgt er Änderungen an Feldern, die sich auf die Buchhaltung auswirken, und nennt Datum und Uhrzeit, den Benutzer, die Art der Änderung sowie den vorherigen und den aktualisierten Wert. Sie öffnen ihn unter Buchhaltung ‣ Überprüfen ‣ Audit Trail und exportieren ihn wie andere Berichte als PDF oder XLSX. Ein restriktiver Modus verhindert, dass verfolgte Datensätze gelöscht werden; sie lassen sich nur stornieren oder archivieren.
Für Unternehmen mit Land Deutschland ist der Audit Trail nach der Lokalisierungsseite 20.0 voreingestellt aktiviert; im Community-Zweig 20.0 erzwingt die deutsche Lokalisierung zusätzlich den restriktiven Modus (addons/l10n_de/models/res_company.py, Feld force_restrictive_audit_trail). Wie die Arten der Unveränderbarkeit zusammenspielen, beschreibt GoBD und Odoo.
Was wo protokolliert wird und wie lange
Die Tabelle zeigt, welche Protokolle Odoo 20.0 führt, wo Sie sie lesen und welche Frist gilt; die Fristen folgen dem Landesrecht, nicht einer Einstellung in Odoo.
| Protokoll | Was darin steht | Wo Sie es finden | Geltung | Frist |
|---|---|---|---|---|
| Chatter am Datensatz | Änderungen an verfolgten Feldern mit Zeitstempel, Benutzer sowie alter und neuer Angabe; dazu Nachrichten, interne Notizen, Aktivitäten und Anhänge; Import- und Systemänderungen als Notiz von OdooBot | am Datensatz selbst, oben rechts | Dokumentation 20.0 ohne Editionsangabe; nur bei Datensätzen mit Chatter | Eine Odoo-eigene Frist nennt die Dokumentation nicht; es gilt die Aufbewahrungsfrist des Landes für die zugehörige Aufzeichnung |
| Bericht Audit Trail | Änderungen an buchhaltungsrelevanten Feldern mit Datum und Uhrzeit, Benutzer, Art der Änderung sowie vorherigem und aktualisiertem Wert | Buchhaltung ‣ Überprüfen ‣ Audit Trail; Export als PDF oder XLSX | Buchhaltungs-App und ihre Berichte laut Editionsvergleich Enterprise; in der deutschen Lokalisierung voreingestellt aktiv (Dokumentation 20.0) | Deutschland: zehn Jahre für Bücher, acht Jahre für Buchungsbelege (§ 147 Abs. 3 AO; die Achtjahresfrist gilt seit 1. Januar 2025, Art. 97 § 19a Abs. 2 EGAO, Sonderregel für Institute, Versicherer und Wertpapierinstitute nach Abs. 3); Österreich: sieben Jahre (§ 132 Abs. 1 BAO); Schweiz: zehn Jahre (Art. 958f Abs. 1 OR) |
| Restriktiver Audit Trail | kein Änderungsverzeichnis, sondern eine Schutzeinstellung: verfolgte Datensätze lassen sich nicht löschen, nur stornieren oder archivieren | Buchhaltung ‣ Einstellungen ‣ Konfiguration, Abschnitt Berichterstattung, Kontrollkästchen Restriktiver Audit Trail | Option laut Dokumentation 20.0; bei Land Deutschland erzwingt die Lokalisierung sie (Community-Zweig 20.0) | solange Sie den Datensatz aufbewahren müssen (Fristen wie in der Zeile Bericht Audit Trail) |
| Sperrdatum-Ausnahmen | wer die Sperre für wen und wie lange aufgehoben hat, mit optionalem Grund | Chatter des Unternehmensdatensatzes | Dokumentation 20.0 ohne Editionsangabe; anlegen dürfen nur Benutzer mit Administratorrechten der Buchhaltungsapp, ohne Ausnahme bleibt die Sperre bestehen | Fristen wie in der Zeile Bericht Audit Trail |
| Unveränderlichkeitsbericht | Hash-Kette (SHA-256) je Journal: ob alle Einträge korrekt gehasht sind – ein Nachweis der Unveränderbarkeit; die Änderungsliste steht im Bericht Audit Trail | Buchhaltung ‣ Konfiguration ‣ Einstellungen, Abschnitt Berichtswesen, Bericht über die Unveränderlichkeitsprüfung von Daten herunterladen | Dokumentation 20.0 ohne Editionsangabe | laden Sie ihn in festen Abständen ab und legen Sie ihn zur Buchhaltung |
| Serverprotokolle | technische Ereignisse: Start und Fehler, Anfragen, Datenbankaktualisierungen; bei Odoo.sh auch Aktionen in Webshell und Editor | eigener Server: Logdatei über –logfile und Stufe über –log-level; Odoo.sh: Reiter Logs des Zweigs | eigener Server und Odoo.sh laut Dokumentation 20.0; für Odoo Online klären Sie die Einsicht beim Anbieter | eigener Server: Dauer nach Ihrer Logrotation; Odoo.sh: nur die Produktionsdatenbank wird automatisch gesichert, jede Sicherung enthält Protokolle und Sitzungen (sieben tägliche, vier wöchentliche, drei monatliche Sicherungen) |
Ein Beispiel mit einem Import
Beispiel: Sie ändern für 200 Kontakte die Zahlungsbedingungen über einen CSV-Import. Angenommen, das Feld ist zur Verfolgung markiert, dann entsteht für jeden geänderten Datensatz ein Chatter-Eintrag; als Urheber nennt er OdooBot. Trägt eine Mitarbeiterin dieselbe Änderung im Formular ein, nennt die Notiz ihren Benutzernamen. Nach sechs Monaten zeigt der Chatter eines Kontakts also zwei verschiedene Urheber, je nach Weg der Änderung.
Betrifft die Änderung ein Buchhaltungsfeld, steht sie zusätzlich im Bericht Audit Trail, mit Art der Änderung und beiden Werten; den Zeitraum setzen Sie im Berichtskopf als Filter. Fehlt der Eintrag, prüfen Sie zuerst, ob das Feld zur Verfolgung markiert ist. Beim Löschen hilft der restriktive Modus: Er lässt nur Storno oder Archivierung zu, sodass der Nachweis erhalten bleibt (siehe Daten bereinigen und löschen).
Was Deutschland, Österreich und die Schweiz verlangen
In Deutschland darf nach § 146 Abs. 4 AO eine Buchung oder Aufzeichnung nicht so verändert werden, dass der ursprüngliche Inhalt nicht mehr feststellbar ist. Die GoBD in der Fassung vom 14. Juli 2025 führen das unter Rz. 107 bis 112 aus: Das Verfahren muss verhindern, dass eingeführte Informationen ohne Kenntlichmachung überschrieben, gelöscht oder geändert werden (Rz. 108); die Unveränderbarkeit lässt sich hardwaremäßig, softwaremäßig (Sicherungen, Sperren, Festschreibung, automatische Protokollierung, Historisierungen, Versionierungen) oder organisatorisch sichern (Rz. 110). Spätere Änderungen müssen den ursprünglichen Inhalt und die Tatsache der Änderung erkennen lassen; bei programmgesteuerten Aufzeichnungen sind auch Änderungen an den Generierungs- und Steuerungsdaten, insbesondere an Einstellungen, aufzuzeichnen (Rz. 111). Aufzubewahren sind Bücher und Aufzeichnungen zehn Jahre und Buchungsbelege acht Jahre; die Achtjahresfrist gilt seit 1. Januar 2025, für Institute nach dem Kreditwesengesetz, Versicherungsunternehmen und Wertpapierinstitute bleibt es bei der am 31. Dezember 2024 geltenden Fassung (§ 147 Abs. 3 Satz 1 AO, Art. 97 § 19a Abs. 2 und 3 EGAO).
In Österreich sollen nach § 131 Abs. 1 Z 6 lit. b BAO Eintragungen auf Datenträgern nicht so veränderbar sein, dass der ursprüngliche Inhalt nicht mehr ersichtlich ist; insbesondere bei der Losungsermittlung mit elektronischem Aufzeichnungssystem soll die Protokollierung der Datenerfassung und nachträglicher Änderungen die Prüfung der vollständigen, richtigen und lückenlosen Erfassung möglich machen. Aufzubewahren sind Bücher, Aufzeichnungen und die zugehörigen Belege sieben Jahre (§ 132 Abs. 1 BAO); die Fristen zeigt Aufbewahrung in Österreich im Detail.
In der Schweiz zählt Art. 957a Abs. 2 OR unter den Grundsätzen ordnungsmässiger Buchführung die Nachprüfbarkeit auf; Geschäftsbücher und Buchungsbelege sind zehn Jahre aufzubewahren (Art. 958f Abs. 1 OR). Für Personendaten kommt das Datenschutzrecht hinzu: Nach Art. 4 Abs. 1 DSV müssen der private Verantwortliche und sein privater Auftragsbearbeiter mindestens Speichern, Verändern, Bekanntgeben, Löschen, Vernichten und Zugreifen protokollieren, wenn sie besonders schützenswerte Personendaten in grossem Umfang automatisiert bearbeiten oder ein Profiling mit hohem Risiko durchführen und die präventiven Massnahmen den Datenschutz nicht gewährleisten; bei Personendaten, die allgemein zugänglich sind, beschränkt Abs. 3 diese Liste in den Fällen der Absätze 1 und 2 erster Satz auf Speichern, Verändern, Löschen und Vernichten. Für das verantwortliche Bundesorgan und seinen Auftragsbearbeiter gilt Abs. 2 mit eigenen Voraussetzungen: Er verlangt die Protokollierung bei der automatisierten Bearbeitung besonders schützenswerter Personendaten, bei der Durchführung von Profilings und bei automatisierten Bearbeitungen im Anwendungsbereich der Richtlinie (EU) 2016/680; bei den übrigen automatisierten Bearbeitungen beurteilen sie das Risiko vorgängig und legen danach Umfang und Gegenstand der Protokollierung fest. Das Protokoll muss die Identität der handelnden Person sowie Art, Datum und Uhrzeit nennen und gegebenenfalls die Identität der Empfängerin oder des Empfängers (Abs. 4); es ist während mindestens einem Jahr getrennt vom bearbeitenden System aufzubewahren (Abs. 5). Die Pflicht nach Abs. 1 trifft nicht jede Bearbeitung, sondern die genannten Fälle.
Typische Fehler
- Im Chatter fehlt der Eintrag, also fehlt das Protokoll. Prüfen Sie die Felddefinition: Laut Entwicklerreferenz 20.0 entsteht die Notiz nur für Felder mit dem Attribut tracking.
- Einstellungen ändern und auf ein automatisches Protokoll vertrauen. Rz. 111 der GoBD verlangt bei programmgesteuerten Aufzeichnungen die Aufzeichnung von Änderungen an Generierungs- und Steuerungsdaten; die Sperrdatum-Ausnahme steht im Unternehmens-Chatter, weitere Einstellungen prüfen Sie mit einem Testbenutzer.
- Einen Fehler durch Löschen bereinigen. Im restriktiven Modus verhindert Odoo die Löschung verfolgter Datensätze; stornieren oder archivieren erhält den Nachweis.
- Die Serverprotokolle als Beleg für Feldänderungen verwenden. Dort stehen technische Ereignisse wie Starts, Fehler und Datenbankaktualisierungen; Feldänderungen lesen Sie im Chatter und im Bericht Audit Trail.
So gehen Sie vor
- Prüfen Sie in einer Testdatenbank, für welche Felder Einträge entstehen; die Felddefinition sehen Sie im Entwicklermodus, Änderungen daran sind Administratorarbeit.
- Öffnen Sie den Bericht Audit Trail für den gewünschten Zeitraum, vergleichen Sie eine bekannte Änderung mit dem Chatter und exportieren Sie den Bericht als PDF oder XLSX.
- Schalten Sie den restriktiven Audit Trail für die Buchhaltung ein; für Unternehmen mit Land Deutschland ist er voreingestellt. Die Arbeitsweise mit Sperrdaten beschreibt Sperrdatum und Festschreibung.
- Setzen Sie unter Buchhaltung ‣ Buchhaltung ‣ Sperrdaten ein Datum für Alles sperren (Lock Everything) und kontrollieren Sie jede Ausnahme im Chatter des Unternehmensdatensatzes.
- Laden Sie den Unveränderlichkeitsbericht in festen Abständen ab und legen Sie ihn zur Buchhaltung; die Fristen für Belege stehen unter Aufbewahrung in Deutschland.
- Regeln Sie, wer Einstellungen und Zugriffsrechte ändern darf, und beschreiben Sie Protokolle, Prüfungen und Fristen in Ihrer Verfahrensdokumentation für Odoo.