An Integration Flow is a process composed of multiple Integration Components connected consecutively.
Each step in the Integration Flow represents one particular task executed on the data that flows in the integration flow.
In this article
For simple cases when we need to transfer the data from one system to the other, we create an integration flow which would look like this:
The first component would be a trigger component which basically transmits the data. The idea is for the second component to receive the data on the other end. This will not happen on its own.
The transmitted data needs to be recognised, reorganised and re-mapped to match with the expected fields of the second component which is on the receiving end of the flow. This job is done by our Data Mapper component. How does it look in real life? Let us consider the following example of an integration flow:
Once the integration flow is started the platform will do the following:
- If the first component of the integration flow is a polling trigger, it will be executed regularly to fetch new data
- If the first component of the integration flow is a WebHook trigger, it will wait until it will be called from outside.
Once the first component executed it may produce output data, in our current example a list of products available in SAP system. As a next step, this data will be given over to the next component in the integration flow
Get Stock Data by Product ID This step will fetch stock data for each and every product. And finally, stock data will arrive at Magento e-commerce shop where it will be used to update the values of the available stock for products.
For simple cases when only two components are used the above method is sufficient. There are, however, some cases when it is necessary to transmit the data to yet another component. This can be easily done by adding an additional stage which would look like this:
The Second component in this scenario would send the data to the third component which would need to be re-mapped into respected fields where it waits for the information.
Data mapper instance per additional component used
It is important to note here that every next component would require an additional instance of Data Mapper invocation.
As with everything, there is a possibility to create an integration flow which would not require a Data Mapper instance to be included in it:
In principle, ur WebHook component can be configured with an external WebHook service which can receive the data. For example, one could try to use it with RequestBin to perform some functionality test or something similar.
Under execution, we understand a single run of the integration flow. For example, let us assume integration flow above that synchronise stock data for products from SAP to Magento will be run every hour. Every hour the platform will start first polling trigger of the integration flow and fetch the list of products from SAP.
Take this flow for example:
Execution statistic above shows a single execution, that extracted one array out of SAP, split into 100 individual product entries and currently in process of fetching stock data one-by-one. As you can also see this execution is still in progress - 98 out of 100 product data was fetched, 2 product data entries are still in process, and we had one product entry that had an error.