Odoo Integration mit TRANSCONNECT®
Die flexible und zuverlässige Integrationsplattform für Odoo
18 Januar, 2024 durch
Odoo Integration mit TRANSCONNECT®
manaTec GmbH, Lars Halbauer
 


In der heutigen digitalen Welt ist die nahtlose Integration von verschiedenen Systemen und Schnittstellen von entscheidender Bedeutung für den reibungslosen Ablauf von Geschäftsprozessen. Eine zuverlässige Lösung, die sich in diesem Bereich besonders hervorhebt, ist TRANSCONNECT® . In diesem Blogbeitrag werden wir uns genauer mit dieser Software befassen und die damit einhergehenden Vorteile für die Integration von Odoo und anderen Schnittstellen beleuchten.

Funktionsweise

TRANSCONNECT® ist ein universeller Integrationsserver und wird von der SQL Projekt AG entwickelt. Mit Hilfe von TRANSCONNECT® können beliebig viele Quell- und Zielsysteme über einen gemeinsamen Service Bus miteinander verbunden werden. Das reduziert die notwendige Schnittstellenanzahl und erhöht die Wartbarkeit des Systems. TRANSCONNECT® arbeitet nachrichtenbasiert. Diese Nachrichten sind Informationsträger, die entweder zeitgesteuert oder durch externe Trigger in das System gespielt werden können. Diese sogenannten Informations-Entitäten lassen sich sowohl syncron als auch asyncron durch das System transferieren, was zur weiteren Flexibilität beiträgt. Die Anbindung an Zielsysteme erfolgt nicht durch spezialisierte Schnittstellen, sondern durch sogenannte Adapter.

Flexibilität durch vielseitige Schnittstellen

Mit Hilfe dieser Adapter ermöglicht es TRANSCONNECT® Unternehmen, Odoo mit einer Vielzahl von Schnittstellen flexibel zu verbinden. Egal ob es sich um CRM-Systeme, E-Commerce-Plattformen oder andere ERP-Systeme handelt - TRANSCONNECT® bietet die Möglichkeit, Daten und Informationen nahtlos zwischen den verschiedenen Systemen auszutauschen. Ein Adapter ist dabei eine abstrahierte Einheit einer Systeminteraktion. So können beispielsweise Interaktionen mit (SQL)-Datenbanken, Dateisystemen, HTTP-Schnittstellen oder E-Mails implementiert werden.

Beispiel einer Orchestrierung in TRANSCONNECT®

Maximierte Kompatibilität durch XML-Format

Ein weiterer großer Vorteil von TRANSCONNECT® ist die Handhabung von Daten im XML-Format. XML ist ein weit verbreitetes Datenformat, das von vielen Systemen unterstützt wird. Durch die Verwendung von XML maximiert TRANSCONNECT® die Kompatibilität mit anderen Systemen und erleichtert den Datenaustausch. Unternehmen können somit sicher sein, dass ihre Daten korrekt und fehlerfrei übertragen werden, unabhängig von den verwendeten Quell- oder Zielsystemen. Die entstehenden XML-Dateien können dabei durch den weit verbreiteten XSLT-Standard (v1.0 oder v2.0) transformiert werden. 

Low-Code Lösung für einfache Integration

TRANSCONNECT® basiert auf dem Low-Code Prinzip. Das bedeutet, dass Unternehmen keine umfangreichen Programmierkenntnisse benötigen, um die Integration von Odoo und anderen Schnittstellen vorzunehmen. Mit einer benutzerfreundlichen, drag&drop-basierten Oberfläche können Sie die Integration schnell und einfach konfigurieren, ohne auf externe Entwickler angewiesen zu sein. Dies spart Zeit und Kosten und ermöglicht es Unternehmen, ihre Geschäftsprozesse effizienter zu gestalten. Wird für eine spezifische Anwendung dennoch tiefergehendes Wissen benötigt, können entsprechende Transformationen oder sogar eigene Java-Klassen geschrieben werden, um den Funktionsumfang von TRANSCONNECT® an die eigenen Bedürfnisse anzupassen. 

Unabhängigkeit für zuverlässiges Monitoring

Ein weiterer großer Vorteil von TRANSCONNECT® ist seine Unabhängigkeit vom Odoo Server. Während andere Integrationstools eng an den Odoo Server gebunden sind, läuft TRANSCONNECT® eigenständig und bietet somit vielfältige Möglichkeiten für ein Monitoring. Dies bedeutet, dass Unternehmen jederzeit den Status der Integration überwachen und bei Bedarf schnell reagieren können. Durch diese Unabhängigkeit wird die Stabilität des Systems gewährleistet und Ausfallzeiten minimiert. Gleichzeitig bietet TRANSCONNECT® durch seine native Anbindung an Email-Server, Push-Benachrichtigungen und erweitertes Monitoring vielfältige Möglichkeiten, Fehler frühzeitig zu detektieren und Ihre Mitarbeiter unabhängig von Odoo zu informieren.

Praktische Anwendung

Im Folgenden soll an einem einfachen Beispiel die Funktionsweise von TRANSCONNECT® gezeigt werden. 

Ziel: 
Bestimmung von Wetterdaten einer definierten Stadt und Übertragung der Daten in eine lokale CSV-Datei. 

Verwendete API: 
Im Beispiel wird die Current Wheather App von OpenWheatherMap verwendet. Die API-Beschreibung kann hier eingesehen werden.

Vorbereitung:

Die Oberfläche des TRANSCONNECT® Managers

Der TRANSCONNECT® Manager dient als GUI-basierte Schnittstelle zur Parametrierung von TRANSCONNECT®-Jobs und basiert auf der modularen Cross-Platform-IDE Eclipse. Der Arbeitsbereich kann mit Hilfe von Modulen flexibel bestückt werden. Hier ein Beispiel eines Arbeitsbereiches: 

Oberfläche des TRANSCONNECT® Managers

Projekterstellung

Die Anbindung beginnt mit der Erstellung eines Projektes im TRANSCONNECT® Manager. Das Projekt ist hier als Sammelstelle aller für den Workflow relevanten Bestandteile innerhalb des TRANSCONNECT® zu sehen. Hier die Übersicht über das Projekt "Blog".

Projekterstellung in TRANSCONNECT®

Erstellung der Orchestrierung

Die Orchestrierung dient als zentrales Aggregationsmedium für prozessrelevante Abläufe. Es beinhaltet sowohl die Bestandteile des Arbeitsablaufs und dient als grafische Visualisierung der notwendigen Schritte, um das Projektziel zu erreichen. Im Beispiel wären das: 

  1. Anbindung an die OpenWheatherMap-API
  2. Abholen der API-Antwort
  3. Formatierung und Filterung der erhaltenen Daten
  4. Weiterverarbeitung der Daten
  5. Lokale Speicherung der Daten 

Erstellung der Orchestrierung in TRANSCONNECT®

API-Anbindung

Die Anbindung an die OpenWheatherMap-API erfolgt über einen HTTP-Adapter. Der Adapter fungiert dabei als Basis und kann unter anderem um verschiedene Endpunkte erweitert werden, was die Modularität der Orchestrierung erhöht. Um den Adapter anzusteuern, wird eine Aufgabe angelegt, die mittels XML-Input Daten an die API (den Adapter) sendet.

API-Anbindung in TRANSCONNECT®

Für dieses Beispiel führen wir den Zugriff auf die API manuell aus. Die Aufgaben können in TRANSCONNECT® allerdings ohne großen Aufwand von manueller Bedienung auf Cron-Jobs oder zeitgesteuert umgestellt werden. 

Der HTTP-Adapter ist nun wie folgt konfiguriert:

Konfiguration der HTTP-Adapter in TRANSCONNECT®

Abhängig vom gewählten Einsatzziel können die Adapter um weitere Eigenschaften ergänzt werden. Im Beispiel benötigen wir jedoch nur die URL, die als Basis-URL für die API-Anbindung fungiert.

Damit die Basis URL um den spezifischen Endpunkt ergänzt werden kann, wird von der angelegten Aufgabe eine XML-Datei an den Adapter übergeben. Diese XML hat folgendes Format:

<?xml version="1.0" encoding="UTF-8"?>
<ROOT>
<REQUEST NAME="Wetterdaten DD" OPERATION="GET" URL="weather" Embed="false">
<PARAMS>
<!-- API key -->
<PARAM NAME="appid"><<CorrectAPIKey>></PARAM>
 
<!-- Dresden -->
<PARAM NAME="id">2935020</PARAM>
 
</PARAMS>
<HEADER />
</REQUEST>
</ROOT>

Das entspricht der GET HTTP-Abfrage "https://api.openweathermap.org/data/2.5/weather?id=2935020&appid=<<CorrectAPIKey>>"
mit den entsprechenden HTTP-Parametern 'id' und 'appid'.

Weiterhin ist zu sehen, dass relativ zur Adapter-URL der Endpunkt /weather​ angesteuert wird. Die OpenWheatherMap-API gibt bei einer erfolgreichen HTTP-Anfrage eine JSON-Datei zurück. Diese muss nun im System weiterverarbeitet werden. 

Datentransport

Wie zu Beginn beschrieben, erfolgt der Datentransport im TRANSCONNECT®-System via Nachrichten. Bei erfolgreicher HTTP-Abfrage erzeugt die Startaufgabe eine Nachricht vom Typ 'blog_wetterdaten_abfragen'. Für diesen Nachrichtentyp wird ein Nachrichtenverteiler (GELB) mit dem passenden Routing erstellt.
 
Damit wird sichergestellt, dass nur diese Art von Nachricht durch das System geleitet wird. Gleichzeitig können für abweichende Nachrichtentypen abweichende Routen konfiguriert werden. Dies würde jedoch den Umfang dieses Blogs sprengen. ​

Datenverteilung in TRANSCONNECT®

Die erfolgreich weitergeleitete Nachricht durchläuft nun bei korrekter Konfiguration die nachfolgende Queue (BLAU). Mit Hilfe der Queue können die Nachrichten, also die abgeholten Daten, asynchron im System verteilt werden. Im gewählten Beispiel werden sie nur an einen Prozess ('Prozess_queu_WeatherMap') weitergeleitet. Falls mehrere Systeme angeschlossen werden sollen, können über die Queue zahlreiche weitere Prozessschritte initiiert werden. Beispielsweise wäre es so möglich, die Daten in einer externen Datenbank zu committen, um die Datenintegrität zu erhöhen. 

Datenverarbeitung

Im letzten Schritt werden die Daten im Prozess 'Prozess_queu_WeatherMap' verarbeitet. 

Datenverarbeitung in TRANSCONNECT® 

Die einzelnen Prozessbestandteile sind in einer ähnlichen GUI-Darstellung wie die Orchestrierung angeordnet. 

Hierzu zählen:

  • die Prozessdokumentation → ein Freitextfeld, das genutzt werden kann, um den Prozessablauf zu dokumentieren
  • ​Prozessdaten → Datenentitäten, die nur im Scope des Prozesses verarbeitet werden
  • Prozessressourcen → z. B. XML / XSLT- Dateien, die zur Datentransformation genutzt werden
  • Weitere Prozessbefehle wie z. B. Verzweigungen (If/Else), Schleifen (XML oder numerisch) oder Fehler-/Datenbehandlung
Prozessbestandteile ​in TRANSCONNECT® 

Im gewählten Beispiel werden die von der API gesendeten Daten in diesem Format von TRANSCONNECT® empfangen:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<ROOT>
<RESPONSE OPERATION="GET" CONTENT-TYPE="application/json" URL="weather" NAME="Wetterdaten DD">
<HEADER>
<Server>openresty</Server>
<Date>Sat, 02 Dec 2023 11:55:45 GMT</Date>
<Content_-2dType>application/json; charset=utf-8</Content_-2dType>
<Content_-2dLength>490</Content_-2dLength>
<Connection>keep-alive</Connection>
<X_-2dCache_-2dKey>/data/2.5/weather?id=2935020</X_-2dCache_-2dKey>
<Access_-2dControl_-2dAllow_-2dOrigin>*</Access_-2dControl_-2dAllow_-2dOrigin>
<Access_-2dControl_-2dAllow_-2dCredentials>true</Access_-2dControl_-2dAllow_-2dCredentials>
<Access_-2dControl_-2dAllow_-2dMethods>GET, POST</Access_-2dControl_-2dAllow_-2dMethods>
</HEADER>
<STATUS_CODE>200</STATUS_CODE>
<STATUS_TEXT>OK</STATUS_TEXT>
<CONTENT>&lt;JSON&gt;&lt;coord&gt;&lt;lon &gt;13.7333&lt;/lon&gt;&lt;lat &gt;51.05&lt;/lat&gt;&lt;/coord&gt;&lt;weather&gt;&lt;id &gt;803&lt;/id&gt;&lt;main &gt;Clouds&lt;/main&gt;&lt;description &gt;broken clouds&lt;/description&gt;&lt;icon &gt;04d&lt;/icon&gt;&lt;/weather&gt;&lt;base &gt;stations&lt;/base&gt;&lt;main&gt;&lt;temp &gt;269.99&lt;/temp&gt;&lt;feels_like &gt;265.31&lt;/feels_like&gt;&lt;temp_min &gt;268.57&lt;/temp_min&gt;&lt;temp_max &gt;272.05&lt;/temp_max&gt;&lt;pressure &gt;1003&lt;/pressure&gt;&lt;humidity &gt;93&lt;/humidity&gt;&lt;/main&gt;&lt;visibility &gt;6000&lt;/visibility&gt;&lt;wind&gt;&lt;speed &gt;3.6&lt;/speed&gt;&lt;deg &gt;340&lt;/deg&gt;&lt;/wind&gt;&lt;clouds&gt;&lt;all &gt;75&lt;/all&gt;&lt;/clouds&gt;&lt;dt &gt;1701517886&lt;/dt&gt;&lt;sys&gt;&lt;type &gt;2&lt;/type&gt;&lt;id &gt;2042201&lt;/id&gt;&lt;country &gt;DE&lt;/country&gt;&lt;sunrise &gt;1701499637&lt;/sunrise&gt;&lt;sunset &gt;1701529303&lt;/sunset&gt;&lt;/sys&gt;&lt;timezone &gt;3600&lt;/timezone&gt;&lt;id &gt;2935020&lt;/id&gt;&lt;name &gt;Kreisfreie Stadt Dresden&lt;/name&gt;&lt;cod &gt;200&lt;/cod&gt;&lt;/JSON&gt;</CONTENT>
</RESPONSE>
</ROOT>

Auf diese werden nun folgende Transformationen angewendet:

  • Datentransformation aus JSON zu XML​

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<ROOT>
<xsl:value-of select="//CONTENT" disable-output-escaping="yes" />
</ROOT>
</xsl:template>
</xsl:stylesheet>

  • Feldmapping für den CSV-Export​
Feldmapping für den CSV-Export

Daraus ergibt sich die folgende Datenstruktur, die via CSV-Adapter in das lokale Dateisystem geschrieben wird:

Datenstruktur

Debugging

Die beschriebenen Abläufe können beim ersten Anlegen von Orchestrierungen komplex erscheinen. Aufgrund der nachrichtenbasierten Datenbearbeitung können alle Datenströme im System jedoch verfolgt werden. 

Im Menü "Nachrichten" lassen sich über eine ID eindeutig identifizierbare Datenpakete anhand des Nachrichtentyps auffinden. In unserem Beispiel filtern wir z. B. nach "blog".

Nachrichten in TRANSCONNECT® 

Nun lässt sich der Prozesszustand dieser Nachricht nachverfolgen. Dadurch erhält man eine visuelle Aufarbeitung des Weges der Daten durch das System. In unserem Fall durchlief die Nachricht den gesamten Prozess der Datentransformation bis hin zur Speicherung als CSV (erkennbar an den grünen Pfeilen mit Zeitstempeln). Man erkennt dadurch nicht nur ob, sondern auch wann bestimmte Daten im System verarbeitet wurden und kann so bereits einen Eindruck über das Timing eines Prozesses erhalten. Für weitere Details können spezielle Timer-Elemente im Prozess integriert werden. 

Weiterhin lassen sich sowohl die Ein- als auch Ausgabedaten der einzelnen Prozessschritte auslesen. So lässt sich für jeden Prozessschritt nachvollziehen, welche Daten hinein- und hinausgingen. 

Wichtig: 
Bei Funktionen wird immer nur der letzte Wert im Prozesszustand dargestellt. Für Zwischenwerte empfiehlt es sich, die Nachrichten in einen weiteren Prozess zu überführen. Dadurch erhalten sie eine eigene ID und sind einzeln auswertbar.

Übersicht Prozesszustand in TRANSCONNECT® 

Fazit

TRANSCONNECT® ist eine innovative Softwarelösung, die Unternehmen dabei unterstützt, Odoo mit anderen Schnittstellen flexibel zu verbinden. Mit vielfältigen Monitoringmöglichkeiten, einer benutzerfreundlichen Low-Code-Lösung und der Handhabung von Daten im XML-Format bietet TRANSCONNECT® eine effiziente und zuverlässige Lösung für die Integration von Geschäftsprozessen. Unternehmen können von einer verbesserten Kommunikation, gesteigerter Effizienz und minimierten Ausfallzeiten profitieren. 

Wenn Sie auf der Suche nach einer flexiblen und robusten Lösung für die Integration von Odoo sind, ist TRANSCONNECT® die richtige Wahl. 
Kontaktieren Sie uns jetzt, wir beraten Sie gerne!


 
Zusammenarbeit im Product Lifecycle Management (PLM)
Vom Vorschlag einer Änderung bis zur Umsetzung in der Stückliste