Live von der Odoo XP 2019 - Das neue Odoo-Framework (ORM)

Auf der Odoo Experience 2019 wurde das neue Odoo Framework vorgestellt. Hierdurch ist es möglich geworden, dass Odoo 13 bis zu 5 Mal schneller als Odoo 12 arbeitet. Die Änderungen im Framework sind Ideen des Gründer von Odoo (Fabien Pinckaers), der diese selbst in einem Proof of Concept umgesetzt hat, um das Entwicklerteam von Odoo von deren Wirksamkeit zu überzeugen.


Folgend die wichtigsten Punkten aus seinem Talk hierzu:

  • Das neue Framework ist das Killer-Feature von Odoo 13 laut Fabien

  • Performance von Python und SQL wurde stark verbessert

  • Im Durchschnitt 4,5-fache Verschnellerung gegenüber Odoo 12

  • Anzahl der Anfragen an die Datenbank wurde stark verringert und optimiert 

  • Umgesetzt wurde dies durch

    • Optimierung des Cache

    • Mehr Verwendung des Speichers, anstatt direkt in die Datenbank zu schreiben

    • Verzögerung bei berechneten Feldern (sie werden erst berechnet, wenn sie angezeigt werden bzw. die Daten direkt in die DB geschrieben werden)

    • Das Schreiben von Updates in die Datenbank wird so weit wie möglich verzögert (hierbei können die Updates optimiert werden und alle Änderungen in einer Abfrage in die Datenbank geschrieben werden)

    • Verringerung von Abhängigkeiten bei der Berechnung von berechneten Feldern

    • Format von Datenfeldern sind identisch zum Format der Felder in der Datenbank (hierdurch viel weniger Umwandlungen von Datenfeldern nötig)

  • Die onchange-Methode gilt als deprecated


Was bedeutet dies für bereits vorhandende Module voheriger Versionen. Hier hat der Entwickler Raphael Collet einen Einblick gegeben. Die wichtigsten Punkte hierzu sind:

  • Ein Großteil der Änderungen benötigen keine Anpassungen der bereits vorhandenen Module

  • Ein weiteres Ziel der Änderungen, neben den Performace-Verbesserungen, ist die Vereinfachung bei der Implementierung von neuen Module 

  • Benutzung des „superuser mode“ anstatt Verwendung der uid des superusers (hierdurch keine Probleme in Multi-Company-Umgebungen)


  • Neuberechnungen von Felder erfolgt immer im „superuser mode“ und nicht über den superuser selbst

  • Benutzung des Decorator @depends_context() bei berechneten Feldern

  • Berechnete Felder werden über die Funktion flush() gespeichert

  • Neuberechnungen von abhängigen berechneten Feldern erfolgen immer automatisch bei create(), write() und onchange()

  • Einführung eines Muli-Company Widget

 

Diese Talks werden auch kurzfristig als Video bei YouTube verfügbar sein. Alle Talks der Odoo Experience 2019 sind zu finden unter: https://www.odoo.com/de_DE/oxp-live