Odoo integration with TRANSCONNECT®
The flexible and reliable integration platform for Odoo
18 January, 2024 by
Odoo integration with TRANSCONNECT®
manaTec GmbH, Lars Halbauer
 


In today's digital world, the seamless integration of different systems and interfaces is crucial for the smooth running of business processes. One reliable solution that stands out in this area is TRANSCONNECT®. In this blog post, we will take a closer look at this software and the benefits it offers for the integration of Odoo and other interfaces.

Functionality

TRANSCONNECT® is a universal integration server developed by the SQL Projekt AG in Germany. TRANSCONNECT® can be used to connect any number of source and target systems via a common service bus. This reduces the number of interfaces required and increases the maintainability of the system. TRANSCONNECT® works message-based. These messages are information carriers that can be played into the system either time-controlled or via external triggers. These so-called information entities can be transferred both synchronously and asynchronously through the system, which contributes to further flexibility. The connection to target systems is not made through specialized interfaces, but through so-called adapters.

Flexibility through versatile interfaces

With the help of these adapters, TRANSCONNECT® enables companies to flexibly connect Odoo with a variety of interfaces. Whether CRM systems, e-commerce platforms or other ERP systems - TRANSCONNECT® offers the possibility to seamlessly exchange data and information between the various systems. An adapter is an abstracted unit of a system interaction. For example, interactions with (SQL) databases, file systems, HTTP interfaces or e-mails can be implemented.

Example of orchestration in TRANSCONNECT®

Maximized compatibility through XML format

Another major advantage of TRANSCONNECT® is the handling of data in XML format. XML is a widely used data format that is supported by many systems. By using XML, TRANSCONNECT® maximizes compatibility with other systems and facilitates data exchange. Companies can therefore be sure that their data is transferred correctly and error-free, regardless of the source or target systems used. The resulting XML files can be transformed using the widely used XSLT standard (v1.0 or v2.0). 

Low-code solution for easy integration

RANSCONNECT® is based on the Low-Code Principle. This means that companies do not need extensive programming knowledge to integrate Odoo and other interfaces. With a user-friendly, drag&drop-based interface, you can configure the integration quickly and easily without having to rely on external developers. This saves time and costs and enables companies to make their business processes more efficient. However, if more in-depth knowledge is required for a specific application, appropriate transformations or even your own Java classes can be written to adapt the functional scope of TRANSCONNECT® to your own needs.

Independence for reliable monitoring

Another major advantage of TRANSCONNECT® is its independence from the Odoo server. While other integration tools are closely tied to the Odoo server, TRANSCONNECT® runs independently and therefore offers a wide range of monitoring options. This means that companies can monitor the status of the integration at any time and react quickly if necessary. This independence ensures the stability of the system and minimizes downtimes. At the same time, TRANSCONNECT®'s native connection to email servers, push notifications and extended monitoring offer a wide range of options for detecting errors at an early stage and informing your employees independently of Odoo.

Practical application

The following is a simple example of how TRANSCONNECT® works.

Goal: 
Determination of weather data for a defined city and transfer of the data to a local CSV file.

Used API: 
The example uses the Current Wheather app from OpenWheatherMap. The API description can be viewed here.

Preparation:

The TRANSCONNECT® Manager interface

The TRANSCONNECT® Manager serves as a GUI-based interface for parameterizing TRANSCONNECT® jobs and is based on the modular cross-platform IDE Eclipse. The workspace can be flexibly equipped with the help of modules. Here is an example of a workspace:

Interface of the TRANSCONNECT® Manager

Project creation

The connection begins with the creation of a project in the TRANSCONNECT® Manager. The project can be seen here as a collection point for all components relevant to the workflow within TRANSCONNECT®. Here is an overview of the "Blog" project.

Project creation in TRANSCONNECT®

Creation of the orchestration

The orchestration serves as a central aggregation medium for process-relevant workflows. It contains both the components of the workflow and serves as a graphic visualization of the steps required to achieve the project goal. In the example, these would be: 

  1. Connection to the OpenWheatherMap API
  2. Retrieving the API response
  3. Formatting and filtering the data received
  4. Further processing of the data
  5. Local storage of data 

Creation of the orchestration in TRANSCONNECT®

API connection

The connection to the OpenWheatherMap API is made via an HTTP adapter. The adapter acts as a basis and can be expanded to include various endpoints, among other things, which increases the modularity of the orchestration. To control the adapter, a task is created that sends data to the API (the adapter) using XML input.

API connection in TRANSCONNECT®

For this example, we are accessing the API manually. However, the tasks can easily be switched from manual operation to cron jobs or time-controlled in TRANSCONNECT®. 

The HTTP adapter is now configured as follows:

Configuration of the HTTP adapter in TRANSCONNECT®

Additional properties can be added to the adapters depending on the selected application. In the example, however, we only need the URL that acts as the base URL for the API connection.

An XML file is transferred from the created task to the adapter so that the specific endpoint can be added to the base URL. This XML has the following 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>

This corresponds to the GET HTTP-request "https://api.openweathermap.org/data/2.5/weather?id=2935020&appid=<<CorrectAPIKey>>"
with the corresponding HTTP parameters 'id' and 'appid'.

You can also see that the /weather endpoint is accessed relative to the adapter URL. The OpenWheatherMap API returns a JSON file in the event of a successful HTTP request. This must now be processed further in the system.

Data transport

As described at the beginning, data is transported in the TRANSCONNECT® system via messages. If the HTTP request is successful, the start task generates a message of the type 'blog_weather_data_requests'. A message distributor (YELLOW) with the appropriate routing is created for this message type.
 
This ensures that only this type of message is routed through the system. At the same time, different routes can be configured for different message types. However, this would go beyond the scope of this blog. ​

Data distribution in TRANSCONNECT®

If configured correctly, the successfully forwarded message now passes through the subsequent queue (BLUE). The queue can be used to distribute the messages, i.e. the retrieved data, asynchronously in the system. In the selected example, they are only forwarded to one process ('Process_queu_WeatherMap'). If several systems are to be connected, numerous other process steps can be initiated via the queue. For example, it would be possible to commit the data to an external database in order to increase data integrity.

Data processing

In the last step, the data is processed in the 'Process_queu_WeatherMap' process. 

Data processing in TRANSCONNECT®

The individual process components are arranged in a similar GUI display to the orchestration. 

These include:

  • the process documentation → a free text field that can be used to document the process flow
  • ​Process data → Data entities that are only processed in the scope of the process
  • Process resources → e.g. XML / XSLT files that are used for data transformation
  • Other process commands such as branching (If/Else), loops (XML or numerical) or error/data handling
Process components in TRANSCONNECT®

In the selected example, the data sent by the API is received by TRANSCONNECT® in this format:

<?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>

The following transformations are now applied to these:

  • Data transformation from JSON to 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>

  • Field mapping for CSV export
Field mapping for CSV export

This results in the following data structure, which is written to the local file system via the CSV adapter:

Data structure

Debugging

The processes described may appear complex when orchestrations are first created. However, thanks to message-based data processing, all data streams in the system can be tracked. 

In the "Messages" menu, uniquely identifiable data packets can be found via an ID based on the message type. In our example, we filter for "blog", for example.

Messages in TRANSCONNECT®

The process status of this message can now be tracked. This provides a visual representation of the data's path through the system. In our case, the message went through the entire process of data transformation up to its storage as a CSV (recognizable by the green arrows with time stamps). This allows you to see not only whether, but also when certain data was processed in the system, giving you an idea of the timing of a process. Special timer elements can be integrated into the process for further details. 

Furthermore, both the input and output data of the individual process steps can be read out. This makes it possible to trace which data went in and out for each process step. 

Important: 
For functions, only the last value in the process status is displayed. For intermediate values, it is advisable to transfer the messages to another process. This gives them their own ID and they can be evaluated individually.

Overview of process status in TRANSCONNECT® 

Conclusion

TRANSCONNECT® is an innovative software solution that supports companies in flexibly connecting Odoo with other interfaces. With a wide range of monitoring options, a user-friendly low-code solution and the handling of data in XML format, TRANSCONNECT® offers an efficient and reliable solution for the integration of business processes. Companies can benefit from improved communication, increased efficiency and minimized downtime. 

If you are looking for a flexible and robust solution for the integration of Odoo, TRANSCONNECT® is the right choice. 
Contact us now, we will be happy to advise you!


 
Collaboration in product lifecycle management (PLM)
From proposing a change to implementing it in the bill of materials