Zum Inhalt springen

Gesperrte und berechnete Felder in Odoo über Serveraktionen sicher aktualisieren

Manchmal lassen sich bestimmte Werte im System nicht einfach manuell überschreiben, ohne die interne Logik zu gefährden. Mit maßgeschneiderten Serveraktionen können selbst gesperrte Daten unter voller Beibehaltung aller Schutzmechanismen konsistent aktualisiert werden.
8. Juni 2026 durch
Gesperrte und berechnete Felder in Odoo über Serveraktionen sicher aktualisieren
rivecon GmbH, Nadja David

Häufig steht man in der Praxis vor der Herausforderung, dass bestimmte berechnete oder geschützte Werte nicht einfach überschrieben werden können, ohne die systeminterne Logik zu stören. Wer an dieser Stelle stumpf Daten in die Datenbank schreibt, riskiert inkonsistente Datensätze. Eine Serveraktion bietet hier die perfekte Lösung: Sie simuliert exakt die Aktion, die zur gewünschten Änderung führt. Dadurch wird der Status absolut konsistent aktualisiert, während alle Schutzmechanismen des Systems vollständig aktiv bleiben.


Das Praxisproblem bei abzurechnenden Aufträgen

Ein klassisches Beispiel aus dem Alltag betrifft Unternehmen, die mit Abonnements arbeiten. In der Liste der abzurechnenden Aufträge verbleiben hin und wieder Vorgänge auf dem Status „abzurechnen“, obwohl die dazugehörige Rechnung längst korrekt erstellt und gebucht wurde. Im Normalfall genügt es, die Rechnung kurz zurückzusetzen und erneut zu buchen, um den Status zu korrigieren. Manchmal führt das System diesen Schritt jedoch nicht automatisch aus.

Da das entsprechende Feld für den Rechnungsstatus berechnet und gesperrt ist, lässt es sich nicht manuell bearbeiten. Die betroffenen Aufträge hängen in der Ansicht fest und lassen sich nicht als erledigt kennzeichnen, um sie aus der Liste zu entfernen. Genau hier setzen Serveraktionen an, um sicher auf die integrierten Funktionen zuzugreifen, die eine Rechnung im Hintergrund als bezahlt oder abgerechnet markieren.

Eine neue Serveraktion im Entwicklermodus anlegen

Um eine solche Bereinigung aufzusetzen, wird zunächst der Entwicklermodus gestartet. Über das Menü der Serveraktionen wird eine neue Aktion erstellt und benannt – im konkreten Praxisbeispiel wird sie als „Rechnung auf erledigt setzen“ betitelt.

Bei der Konfiguration der Parameter sind folgende Schritte wichtig:

  • Modell festlegen: Da die Aktion direkt bei den Aufträgen greifen soll, wird als Einsatzort das Modell des Verkaufsauftrags gewählt.

  • Aktionstyp wählen: Als auszuführende Aktion wird die Option definiert, einen Code auszuführen.

  • Code hinterlegen: An dieser Stelle wird der Python-Befehl eingepflegt, der den Rechnungsstatus der ausgewählten Datensätze gezielt anspricht und auf den Wert für „berechnet“ beziehungsweise „abgerechnet“ setzt.

Sicherheit durch das integrierte ORM Framework

Das Besondere an diesem Weg ist, dass kein direkter, riskanter Schreibzugriff auf die SQL-Datenbank erfolgt. Die Serveraktion nutzt stattdessen die offizielle Systemfunktion über die integrierte ORM-Schicht (Object-Relational Mapping). Das System prüft bei der Ausführung des Befehls intern, ob die Statusänderung für den Datensatz in Ordnung ist. Sollten unerwartete Seiteneffekte oder logische Probleme auftreten, blockiert das System die Ausführung automatisch.

Die im Code nutzbaren Variablen und Befehle sind innerhalb der Serveraktionen aus Sicherheitsgründen bewusst stark eingeschränkt und in der offiziellen Dokumentation definiert. Dadurch wird sichergestellt, dass zwar Daten modifiziert, aber niemals Kernstrukturen des Systems beschädigt werden können. Wer für spezifische Befehle Hilfestellung benötigt, kann heutzutage auch auf gängige KI-Modelle zurückgreifen, da die Dokumentationen und Anleitungen des Systems vollständig in den bekannten LLMs hinterlegt sind.

Bereitstellung im Interface und Batch-Verarbeitung

Damit die neu angelegte Serveraktion für die Anwender nutzbar wird, muss im Formular der Serveraktion der Button „Kontextuelle Aktion erstellen“ geklickt werden. Erst dieser Schritt sorgt dafür, dass die Aktion im Standard-Interface unter dem Aktions-Button oberhalb der Listenansichten auftaucht. Nach dem obligatorischen Leeren des Browser-Caches steht die Funktion bereit.

Wird nun in den abzurechnenden Aufträgen ein fehlerhafter Datensatz ausgewählt, lässt sich die Serveraktion über das Aktions-Menü aufrufen. Mit einem Klick wird der Status korrigiert und der Auftrag verschwindet sofort aus der Ansicht. Diese Methode eignet sich hervorragend für die massenhafte Verarbeitung (Batch-Verarbeitung) von Daten – beispielsweise um nach einer Migration oder bei einem fehlerhaften Import hunderte oder tausende Zahlungsbedingungen und Statuswerte in einem Rutsch zu korrigieren. Besonders in der Buchhaltung ist dieser flexible Weg ein unverzichtbares Werkzeug, um größere Mengen von Einträgen schnell und sicher im Standard zu fixen.

Im Video Schritt für Schritt erklärt

Damit du diese technische Lösung fehlerfrei in deinem System nachbauen kannst, haben wir den gesamten Prozess im Video festgehalten. Wir zeigen dir Schritt für Schritt, wie du den Entwicklermodus aktivierst, den Python-Befehl über die ORM-Schicht korrekt hinterlegst und die kontextuelle Aktion erstellst, um feststeckende Aufträge per Massenbearbeitung sauber aus deinen Listen zu entfernen.



Diesen Beitrag teilen