J)

JavaScript Module

Javascript hat keine eingebauten Module. Als Folge davon werden Variablen, die in verschiedenen Dateien definiert sind, alle miteinander vermischt und können zu Konflikten führen. Das Odoo-Rahmenwerk verwendet ein solches Muster zur Definition von Modulen innerhalb von Web-Addons, um sowohl den Namespace-Code als auch die korrekte Reihenfolge seiner loading.oepetstore/static/js/petstore.js enthält eine Moduldeklaration: Im Odoo-Web werden Module als Funktionen deklariert, die auf die globale Variable odoo gesetzt werden. Wenn der Web-Client Ihr Modul lädt, ruft er die Root-Funktion auf und stellt zwei Parameter zur Verfügung:

- Der erste Parameter ist die aktuelle Instanz des Odoo-Web-Clients; er ermöglicht den Zugriff auf verschiedene vom Odoo definierte Funktionen (Übersetzungen, Netzwerkdienste) sowie auf Objekte, die vom Kern oder von anderen Modulen definiert werden.

- Der zweite Parameter ist Ihr eigener lokaler Namensraum, der automatisch vom Web-Client erstellt wird. Objekte und Variablen, auf die von außerhalb Ihres Moduls zugegriffen werden sollte (entweder weil der Odoo-Webclient sie aufrufen muss oder weil andere sie vielleicht anpassen wollen), sollten innerhalb dieses Namensraums gesetzt werden.

 

JSON-RPC-Bibliothek

Das folgende Beispiel ist ein Python-3-Programm, das mit einem Odoo-Server mit den Standard-Python-Bibliotheken urllib.request und json interagiert. Dieses Beispiel setzt voraus, dass die Produktivitätsanwendung (Hinweis) installiert ist. Es gibt eine Reihe von High-Level-APIs in verschiedenen Sprachen für den Zugriff auf Odoo-Systeme, ohne explizit XML-RPC oder JSON-RPC zu verwenden.