Using Power Automate to help with Exploratory Testing for EAI projects
When we work on Enterprise Integration project we are often part of a bigger programme where multiple systems are being changed or introduced as part of the project and interfaces between systems are required to make the solution do the thing the business needs.
We often also have scenarios where we are building an interface with significant assumptions about what the systems will do but with the risk that the systems arent fully implemented yet. The challenge is how to mitigate this risk early in the project.
One example I had was where a new system was being implemented and we needed to send it some test data from our existing systems but the existing system needed changes to support the requirements. We were building a Logic Apps based interface. The challenge is how do we send data to the new system to ensure everything would be likely to work and test out our assumptions when we know it could be months before the existing system would be ready to send data.
This type of situation is common in big integration projects.
What id like to do is to build enough of the interface to send data and integrate with one of the systems but to allow our business analysts and users to submit example data so they can see what the new system would look like. This early feedback can identify problems and mitigate risk which could save a significant amount of money for the project and protect project timelines because problems being identified late can be a major issue!
Lets imagine a scenario like in the below picture.
In this implementation the system being changed would publish data to an Azure Event Hub and a Logic App would be picking up and processing the events and transforming the data and delivering it to the new system which is being implemented.
What we would like to be able to do is send some example data to the new system so we can see how the system will work and identify any issues. Ideally we would like to test some of the interface too but we dont want to have to wait for the system being changed to be complete before we get the early feedback.
Enter the Power Platform
What would work well is if we can allow our business analysts and users to be able to submit sample data to the interface similar to how the existing system would and to see it all work and process the incoming data in the new system to get this early feedback.
If we bring the Power Platform into our solution we can allow either the integration developers (or even better we can train our BA) to be able to use the Power Platform to submit sample data. One way we could do this would be to use Power Automate to read data from a spreadsheet and to submit it to the Event Hub which would trigger the interface. If we host the spreadsheet in Microsoft Teams and SharePoint then the users can create their own sample data and then trigger the Power Automate Flow whenever they want and the data would be submitted to the event hub and sent to the end system.
This would look like the below picture:
In the picture you can see the user is interacting with the Microsoft Teams client. This lets them initially modify the test data inside a table in excel. The excel spreadsheet is hosted in SharePoint online behind the scenes within the teams channel.
In Microsoft Teams you can add the Flow tab and share a flow that you would create with the Team. This provides a very easy way for the user to trigger the flow. See below picture
When the user has modified the spreadsheet they can just trigger the flow direct from in teams to send the data across.
In side the Flow I created in Power Automate you can see below its triggered manually supporting the trigger from Teams.
The flow will query the table rows from Excel and then loop over each row and create a message using the compose shape and then send the message to the Event Hub.
This Flow/Teams/Excel combination took about 1 hour to implement and meant that it was very easy to get the users to be able to send sample data to our new system quickly. We would get some excellent feedback which allowed us to identify some potential issues and resolve them weeks/months quicker than we would have otherwise identified the issues.
The other great thing is that the Power Platform elements of the solution are throw away. Once the development is done in our existing system to allow us to send proper data end to end we can simply delete all of the Power Automate and Teams bits we had used.