Wer heutzutage Data Science studiert, lernt Python als Programmiersprache und Jupyter als Entwicklungsumgebung kennen. Die Zeiten von SPSS gezählt. Es gibt noch R und RStudio, doch das hat immer weniger Relevanz. Python wurde zu universellen Sprache und kommt in verschiedenen Bereichen zum Einsatz. Machine Learning, Data Analysis, Visualization, Automatisierung und auch die Entwicklung von Large Language Models sind von Python getrieben.
Dieses Potenzial ist besonders spannend für Odoo. Odoo eine Business Management Software und das Odoo Backend ist in Python geschrieben. Jeder Statistiker und jede Datenwissenschaftlerin kann Python-Code lesen und schreiben.
Bei Mint System haben wir Personen mit diesem Profil angestellt und Fragen uns wie wir die Welt der Data Science und Odoo besser verbinden kann. Der Austausch von Daten hat in Odoo eine zentrale Bedeutung.
Data Science in Odoo Projekte
Es gibt verschiedene Anwendungsfälle. Daten wie Kontakte müssen bei der Implementation eines Odoo Projekts von einem bestehenden System exportiert, angepasst und importiert werden. Externe Systeme liefern beispielsweise EDI-Dokumente, welche für einen Odoo-Import systematisch verarbeitet werden müssen. Es gibt auch den umgekehrten Weg, Daten müssen aus Odoo beispielsweise für ein PDM-System exportiert werden.
Eine kurze Übersicht der Berührungspunkte:
- Extract Load Transform (ETL)
- Data Export and Transformation
- Data Syncing
- Data Analysis and Visualization
- Machine Learning
Flexibilität mit Jupyter
Die eingebauten Kapazitäten von Odoo um diese Bereiche abzubilden sind begrenzt. Odoo lässt sich beliebig mit Modulen sprich Python-Code erweitern. Doch gerade in diesen Bereiche wünscht man sich viel Flexibilität. Zum Beispiel möchte man im laufenden Betrieb ein neues Feld zum Datensatz hinzufügen oder einen Parameter vom Pytorch-Model anpassen.
Diese Flexibilität bieten Jupyter Notebooks. Jupyter Noteboks enthalten Dokumentation, Instruktion und Resultat in einem Dokument. Bestehende Python-Bibliotheken wie Pytorch, pandas, Matplotlib oder scikit-learn können in Notebooks geladen und verwendet werden.
Mit diesen Tools lassen sich grossen Datenmengen blitzschnell verbinden. In der Kommunikation mit Odoo wird dann oft die Schnittstelle (API) zum Flaschenhals. Die Daten sind ready, brauchen aber viel Zeit bis sie im System sind.
Integration von Jupyter Notebooks
Wir haben uns gefragt, wie wir Jupyter Notebooks mit Odoo verbinden können, ohne die Odoo-API zu nutzen und ohne einen direkten Zugriff auf die Odoo-Datenbank zu machen. Das Ergebnis sind zwei Odoo Module Jupyter Lab und Jupyter Notebook Run.
Mit dem ersten Modul kann in Odoo eine Jupyter Lab Umgebung erstellen, initialisieren und starten.

Mit einem Link gelangt man auf die Jupyter Lab Umgebung. Notebooks in diesem Kontext erhalten Zugriff auf das Odoo Datenmodell.

Das zweite Module ermöglicht die Ausführung von Jupyter Notebooks ohne dass man die Jupyter Lab Umgebung starten muss.
Der Benutzer kann ein Notebook aufrufen und einen Dialog zur Ausführung starten. Parameter oder Dateien können an das Notebook übergeben werden.

Das Resultat der Ausführung wird in Odoo angezeigt.
