When organizations are looking for an integration platform for Microsoft Dynamics 365 Finance & Operations/Finance & Supply Chain Management (F&O/F&SCM) you might not always know about the complexity of all the scenarios you would have to account for integrations. Also, complex projects need customizations and additional specialized knowledge that you will not likely have in-house. Unless you find a partner that can deliver an easy-to-use no-code integration tool but also support you while implementing complex integration projects, even the top-rated integration solutions might not make it to your list of business integration solutions that you are currently considering.
At To-Increase, we have been working closely with Microsoft and building solutions that solve everyday customer challenges for the last 17+ years. We have a passionate team of experts that have helped over 2200 customers in 45 different countries implement our solutions successfully, including our integration platform Connectivity Studio. We launched our Connectivity Studio solution to help customers simplify integration for Dynamics 365 F&O/F&SCM, D365 BC, AX, and NAV.
Therefore, in this blog, we share complex integration scenarios that we successfully implemented for our customers using the expertise of our To-Increase Business Integration Consultants. Our Consultants guided the customers with training, implementation support, and documentation based on the organization’s briefing and requirements.
Although we offer Connectivity Studio for various versions of Microsoft’s platforms as mentioned above, in this blog, we will focus on complex integration scenarios using D365 F&O/F&SCM and AX 2012.
4 Complex integrations using Connectivity Studio
We were asked to bring repair and maintenance information inside AX 2012 and that was in XML format. It was a format that had been designed almost 15 years ago and was difficult to comprehend.
There was a lot of data stored in a very complex XML document structure with almost 15,000 lines. The data was spread across all kinds of different XML nodes. It was not possible to find a data pattern as data was scattered across the file. This would make maintenance and understanding the data difficult. So, transferring this data without organizing it would have added an additional layer of complexity. Additionally, it is important to note that not all applications and solutions can read huge, complicated XML files as the buffer might run out of memory.
We usually see XML files that have the data in the second or third level, but this was a first, where we had to go to the 15th level deep to retrieve the data that we needed for different nodes. Thanks to a good buffer size in our integration platform, we managed to read the data. We solved this challenge using XLST which is a stylesheet.
We took a record of around 900 lines and looked for data patterns with the most critical data and we built an XLST script that could dynamically fetch the lowest level, bring it up and rename it and remove the rest. This reduced the load on the XML file and made it easier to read and understand. This helped improve the performance of reading an integrating file drastically.
The role Connectivity Studio played
Connectivity Studio allows you to not just read different formats that are standardized but even XML that have no guidelines or a format and could be difficult to read and understand. We could leverage the platform to apply a script so we did a transformation to the data so that we could segment what we needed from the file but even then, Connectivity Studio could read the file before the script was applied to it. This process helped our customer transfer complicated data from a dated XML file.
In a simpler integration, you can use Connectivity Studio to read all the data and map it to corresponding fields in the software you are integrating with unless you add conditions. So, you can use Connectivity Studio to read a file and then it goes to the buffer table, and from this buffer table, the data can be mapped.
There was information in our customer’s on-premise SQL server stored outside the cloud. So, the first challenge was bringing information from a warehouse server that was on-premise and exchanging that data with the ERP which was Microsoft Dynamics 365 F&O/F&SCM which was on the cloud.
After integrating the two systems, the customer also wanted to automate the process and build two-way communication between the on-premise SQL server and D365 so that they can exchange data back and forth and complete actions such as reading picking instructions from D365 on the SQL server.
Since we can also use Azure components to interact with Connectivity Studio, we used the Azure service bus to bring the data to the cloud. In this case, we did that to build a digital bridge for the data to travel between the on-premise server and D365 which is in the cloud. D365 cannot read data from an on-premise local database on its own.
To ensure two-way communications, so that things such as reading picking instructions from D365 on the SQL server was possible, we had to share data from the cloud to the on-premise server.
A customized handler was used to allow the interaction between the on-premise system and D365 with specific logic. When you customize a handler you can interact with the built-in logic of D365, so you can perform actions such as picking.
The role Connectivity Studio played
Besides being able to transfer data to D365, Connectivity Studio can trigger advanced logic from D365 which means that you can post a journal or a report. The challenge was that when SQL server picks an item, D365 needs to trigger business logic to register that action in its database. In order to do so, we had to call D365 logic. So, we developed a handler that was able to read the data from the SQL server and then capable of calling the picking logic from D365.
We have document flows in Connectivity Studio that can be used to achieve communication between systems. So, as soon as something gets picked, we add the records to the message queue and this message queue is capable to call the SQL Server and then send the information to the on-premise SQL server.
Connectivity Studio makes customizations really safe because just with the click of a button it allows you to go back to the Standard behavior.
The problem was that this customer was in AX2012 and they wanted a platform for their own customers to check the status of their machinery, pictures, maintenance status, and so on. The website was in the cloud and all the information and architecture was on-premise on Microsoft AX2012. So, we had to build all this information between the server and the cloud. One of the biggest challenges in doing this was ensuring security while integrating a legacy application with a cloud-based application.
We had to do a lot of things to synchronize an old system such as AX 2012 with a modern cloud-based application such as PowerApps which included authentication, server communication, and API development and testing.
So, the first thing we did was backported the latest technology for API back to AX2012. Taking care of authentication was a big challenge so we backported to a platform that allows authentication for modern cloud applications. We registered the app on Azure and received a token to authenticate ourselves.
The next thing was to find a means to send information from a server on AX2012 to the Dataverse where the website was hosted. Since the Dataverse uses APIs, we could call the API to share data between the on-premise AX 2012 ERP and the website which was on the cloud.
The structure of the website was delivered through the Dataverse which is a smart database that allows you to store data using a set of tables with fields for values such as rental orders, customers, items, invoices, etc. The Dataverse allows you to connect to APIs, therefore we built an API to connect to AX 2012 using Azure in between to send data back to this website which was hosted in the cloud.
The role Connectivity Studio played
Since we helped build an architecture to sync an AX 2012 server to a cloud application in the Dataverse by authenticating through Azure which could communicate through APIs, what is the role Connectivity Studio played in all of this?
We used Connectivity Studio in two ways, first one is to help the client call a message which was mapped using Connectivity Studio to produce a file. The second way was to call a message using Connectivity Studio linked to an API. The integration platform allows you to trigger a configured event that then triggers an API.
Let’s look at an example to explain this, if you need to send out a rental order using AX 2012 and want it to be created on the website which is on the cloud, we can help you with such a scenario. What we did was activate SQL triggers capturing events such as the creation of rental orders. Using Connectivity Studio, you can send a message that allows you to trigger an event that calls the API which in turn allows you to send the specific rental order created to the Dataverse.
Our customer was synchronizing D365 with an Azure SQL server. Since separate interfaces were constantly exchanging data between D365 and Azure SQL this impacted the performance of those messages with 30-40 faulty messages being exchanged which was slowing down processes.
We used Azure service bus to move the information from D365 to the SQL server on Azure. But we saw that the time to process the records was very high. We had to ensure that we can send the data without overloading the D365 system.
Since the D365 processes can use a batch server, we had to find a way to split certain processes between the batch server to improve the processing time of the records without slowing down the system.
The role Connectivity Studio played
What was possible to do with Connectivity Studio was to run these interfaces in parallel. For every thousand records, our solution needed to run, we had to split the processing by utilizing each batch server available on D365. From a few hours, we were able to improve the processing speed and hit a target of under 2 minutes.
Do you want to explore Connectivity Solution for Dynamics 365?
To-Increase’s Connectivity Studio solution provides a toolbox but there are also some things that need to be done outside the solution that can help us integrate complex projects and systems. And we can help you with customizations, documentation, implementation support, and extended support.
Having said that, however complicated your scenario is, our solution and our team of experienced Consultants can help. So even if you do not have an integration specialist or a D365 specialist within your organization, To-Increase can help you simplify integrations.
Besides integrations, Connectivity Studio can also help you with data migration from legacy systems such as AX 2012 to D365. You can use the integration solution to update and delete data and synchronize changes in your application ecosystem quickly.